Throw error if new.target is like new.foo
This commit is contained in:
@@ -1448,7 +1448,7 @@ function parse($TEXT, options) {
|
|||||||
expect_token("operator", "new");
|
expect_token("operator", "new");
|
||||||
if (is("punc", ".")) {
|
if (is("punc", ".")) {
|
||||||
next();
|
next();
|
||||||
expect_token("name");
|
expect_token("name", "target");
|
||||||
return subscripts(new AST_NewTarget({
|
return subscripts(new AST_NewTarget({
|
||||||
start : start,
|
start : start,
|
||||||
end : prev()
|
end : prev()
|
||||||
|
|||||||
@@ -85,4 +85,11 @@ describe("New", function() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Should check target in new.target", function() {
|
||||||
|
assert.throws(function() {uglify.parse("new.blah")}, function(e) {
|
||||||
|
return e instanceof uglify.JS_Parse_Error
|
||||||
|
&& e.message === "SyntaxError: Unexpected token name «blah», expected name «target»";
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user