diff --git a/src/parsers/expression.js b/src/parsers/expression.js index 6df3a90f1..0213155d6 100644 --- a/src/parsers/expression.js +++ b/src/parsers/expression.js @@ -4,7 +4,7 @@ var Cache = require('../cache') var expressionCache = new Cache(1000) var keywords = - 'Math,break,case,catch,continue,debugger,default,' + + 'Math,Date,break,case,catch,continue,debugger,default,' + 'delete,do,else,false,finally,for,function,if,in,' + 'instanceof,new,null,return,switch,this,throw,true,try,' + 'typeof,var,void,while,with,undefined,abstract,boolean,' + @@ -16,7 +16,7 @@ var keywords = var wsRE = /\s/g var newlineRE = /\n/g -var saveRE = /[\{,]\s*[\w\$_]+\s*:|('[^']*'|"[^"]*")/g +var saveRE = /[\{,]\s*[\w\$_]+\s*:|('[^']*'|"[^"]*")|new /g var restoreRE = /"(\d+)"/g var pathTestRE = /^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\])*$/ var pathReplaceRE = /[^\w$\.]([A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\])*)/g diff --git a/test/unit/specs/parsers/expression_spec.js b/test/unit/specs/parsers/expression_spec.js index 09bc93204..ac8b35d84 100644 --- a/test/unit/specs/parsers/expression_spec.js +++ b/test/unit/specs/parsers/expression_spec.js @@ -197,6 +197,13 @@ var testCases = [ }, expected: true, paths: [] + }, + { + // Date global + exp: 'Date.now() > new Date("2000-01-01")', + scope: {}, + expected: true, + paths: [] } ]