Require superclass expressions to be lvals

And remove a test that violates this.

Closes #185
This commit is contained in:
Marijn Haverbeke 2014-12-30 12:53:58 +01:00
parent 0084ac14ae
commit 0b59fc198b
2 changed files with 1 additions and 66 deletions

View File

@ -2406,6 +2406,7 @@
next();
node.id = tokType === _name ? parseIdent() : isStatement ? unexpected() : null;
node.superClass = eat(_extends) ? parseExpression() : null;
if (node.superClass) checkLVal(node.superClass);
var classBody = startNode();
classBody.body = [];
expect(_braceL);

View File

@ -6465,72 +6465,6 @@ test("var A = class extends B {}", {
locations: true
});
test("class A extends class B extends C {} {}", {
type: "Program",
body: [{
type: "ClassDeclaration",
id: {
type: "Identifier",
name: "A",
loc: {
start: {line: 1, column: 6},
end: {line: 1, column: 7}
}
},
superClass: {
type: "ClassExpression",
id: {
type: "Identifier",
name: "B",
loc: {
start: {line: 1, column: 22},
end: {line: 1, column: 23}
}
},
superClass: {
type: "Identifier",
name: "C",
loc: {
start: {line: 1, column: 32},
end: {line: 1, column: 33}
}
},
body: {
type: "ClassBody",
body: [],
loc: {
start: {line: 1, column: 34},
end: {line: 1, column: 36}
}
},
loc: {
start: {line: 1, column: 16},
end: {line: 1, column: 36}
}
},
body: {
type: "ClassBody",
body: [],
loc: {
start: {line: 1, column: 37},
end: {line: 1, column: 39}
}
},
loc: {
start: {line: 1, column: 0},
end: {line: 1, column: 39}
}
}],
loc: {
start: {line: 1, column: 0},
end: {line: 1, column: 39}
}
}, {
ecmaVersion: 6,
ranges: true,
locations: true
});
test("class A {get() {}}", {
type: "Program",
body: [{