fixing regex-interpolation-sans-flags issue.

This commit is contained in:
Jeremy Ashkenas 2010-07-21 10:32:36 -07:00
parent 7e225688cb
commit ff88482034
3 changed files with 8 additions and 3 deletions

View File

@ -206,7 +206,10 @@
});
this.tokens = this.tokens.concat([['(', '('], ['NEW', 'new'], ['IDENTIFIER', 'RegExp'], ['CALL_START', '(']]);
this.interpolateString(("\"" + str + "\""), true);
this.tokens = this.tokens.concat([[',', ','], ['STRING', ("\"" + flags + "\"")], [')', ')'], [')', ')']]);
if (flags) {
this.tokens.splice(this.tokens.length, 0, [',', ','], ['STRING', ("\"" + flags + "\"")]);
}
this.tokens.splice(this.tokens.length, 0, [')', ')'], [')', ')']);
} else {
this.token('REGEX', regex);
}

View File

@ -3,9 +3,10 @@
var __extends = function(child, parent) {
var ctor = function(){ };
ctor.prototype = parent.prototype;
child.__superClass__ = parent.prototype;
child.prototype = new ctor();
child.prototype.constructor = child;
if (typeof parent.extended === "function") parent.extended(child);
child.__superClass__ = parent.prototype;
};
if (typeof process !== "undefined" && process !== null) {
Scope = require('./scope').Scope;

View File

@ -171,7 +171,8 @@ exports.Lexer: class Lexer
str: str.replace REGEX_ESCAPE, (escaped) -> '\\' + escaped
@tokens: @tokens.concat [['(', '('], ['NEW', 'new'], ['IDENTIFIER', 'RegExp'], ['CALL_START', '(']]
@interpolateString "\"$str\"", yes
@tokens: @tokens.concat [[',', ','], ['STRING', "\"$flags\""], [')', ')'], [')', ')']]
@tokens.splice @tokens.length, 0, [',', ','], ['STRING', "\"$flags\""] if flags
@tokens.splice @tokens.length, 0, [')', ')'], [')', ')']
else
@token 'REGEX', regex
@i: + regex.length