fixes #1924: CoffeeScript.compile shouldn't modify options object

This commit is contained in:
Michael Ficarra
2011-12-10 21:00:28 -05:00
parent 8855eede5f
commit 7b4f1b165d
2 changed files with 5 additions and 2 deletions

View File

@@ -33,9 +33,11 @@
exports.helpers = require('./helpers');
exports.compile = compile = function(code, options) {
var merge;
if (options == null) options = {};
merge = exports.helpers.merge;
try {
return (parser.parse(lexer.tokenize(code))).compile(options);
return (parser.parse(lexer.tokenize(code))).compile(merge({}, options));
} catch (err) {
if (options.filename) {
err.message = "In " + options.filename + ", " + err.message;

View File

@@ -32,8 +32,9 @@ exports.helpers = require './helpers'
# Compile a string of CoffeeScript code to JavaScript, using the Coffee/Jison
# compiler.
exports.compile = compile = (code, options = {}) ->
{merge} = exports.helpers
try
(parser.parse lexer.tokenize code).compile options
(parser.parse lexer.tokenize code).compile merge {}, options
catch err
err.message = "In #{options.filename}, #{err.message}" if options.filename
throw err