Revert "Require superclass expressions to be lvals"

This reverts commit 0b59fc198baf2cd970091ee96fe5dd0f90034692.

Issue #187
This commit is contained in:
Marijn Haverbeke 2015-01-04 22:28:16 +01:00
parent e271168cf6
commit 045d8c02f5
2 changed files with 66 additions and 1 deletions

View File

@ -2413,7 +2413,6 @@
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,6 +6465,72 @@ 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: [{