support new.target (#4746)

fixes #4745
This commit is contained in:
Alex Lam S.L
2021-03-06 23:11:36 +00:00
committed by GitHub
parent ad903e9240
commit c7520b4b97
4 changed files with 55 additions and 1 deletions

View File

@@ -1812,10 +1812,17 @@ var AST_Super = DEFNODE("Super", null, {
var AST_This = DEFNODE("This", null, {
$documentation: "The `this` symbol",
_validate: function() {
if (this.name !== "this") throw new Error('name must be "this"');
if (this.TYPE == "This" && this.name !== "this") throw new Error('name must be "this"');
},
}, AST_ObjectIdentity);
var AST_NewTarget = DEFNODE("NewTarget", null, {
$documentation: "The `new.target` symbol",
_validate: function() {
if (this.name !== "new.target") throw new Error('name must be "new.target": ' + this.name);
},
}, AST_This);
var AST_Template = DEFNODE("Template", "expressions strings tag", {
$documentation: "A template literal, i.e. tag`str1${expr1}...strN${exprN}strN+1`",
$propdoc: {