mirror of https://github.com/tc39/test262.git
Add tests for valid identifier names also listed as reserved words
Ref #2285
This commit is contained in:
parent
65fd8d30a3
commit
cf32265765
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: default is a valid identifier name, using extended escape
|
||||
template: default
|
||||
---*/
|
||||
|
||||
//- declareWith
|
||||
def\u{61}ult
|
||||
//- referenceWith
|
||||
default
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: default is a valid identifier name, using escape
|
||||
template: default
|
||||
---*/
|
||||
|
||||
//- declareWith
|
||||
def\u0061ult
|
||||
//- referenceWith
|
||||
default
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: default is a valid identifier name
|
||||
template: default
|
||||
---*/
|
||||
|
||||
//- declareWith
|
||||
default
|
||||
//- referenceWith
|
||||
default
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/class/ident-name-method-def-
|
||||
name: MethodDefinition
|
||||
esid: prod-PropertyDefinition
|
||||
info: |
|
||||
ObjectLiteral :
|
||||
{ PropertyDefinitionList }
|
||||
{ PropertyDefinitionList , }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
PropertyDefinitionList , PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
MethodDefinition
|
||||
...
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ( UniqueFormalParameters ){ FunctionBody }
|
||||
|
||||
PropertyName:
|
||||
LiteralPropertyName
|
||||
...
|
||||
|
||||
LiteralPropertyName:
|
||||
IdentifierName
|
||||
...
|
||||
|
||||
Reserved Words
|
||||
|
||||
A reserved word is an IdentifierName that cannot be used as an Identifier.
|
||||
features: [class]
|
||||
---*/
|
||||
|
||||
var C = class {
|
||||
/*{ declareWith }*/() { return 42; }
|
||||
}
|
||||
|
||||
var obj = new C();
|
||||
|
||||
assert.sameValue(obj['/*{ referenceWith }*/'](), 42, 'property exists');
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/statements/class/ident-name-method-def-
|
||||
name: MethodDefinition
|
||||
esid: prod-PropertyDefinition
|
||||
info: |
|
||||
ObjectLiteral :
|
||||
{ PropertyDefinitionList }
|
||||
{ PropertyDefinitionList , }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
PropertyDefinitionList , PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
MethodDefinition
|
||||
...
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ( UniqueFormalParameters ){ FunctionBody }
|
||||
|
||||
PropertyName:
|
||||
LiteralPropertyName
|
||||
...
|
||||
|
||||
LiteralPropertyName:
|
||||
IdentifierName
|
||||
...
|
||||
|
||||
Reserved Words
|
||||
|
||||
A reserved word is an IdentifierName that cannot be used as an Identifier.
|
||||
features: [class]
|
||||
---*/
|
||||
|
||||
class C {
|
||||
/*{ declareWith }*/() { return 42; }
|
||||
}
|
||||
|
||||
var obj = new C();
|
||||
|
||||
assert.sameValue(obj['/*{ referenceWith }*/'](), 42, 'property exists');
|
|
@ -0,0 +1,21 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
path: language/expressions/assignment/member-expr-ident-name-
|
||||
name: MemberExpression IdentifierName
|
||||
esid: prod-PropertyDefinition
|
||||
info: |
|
||||
MemberExpression:
|
||||
...
|
||||
MemberExpression . IdentifierName
|
||||
|
||||
Reserved Words
|
||||
|
||||
A reserved word is an IdentifierName that cannot be used as an Identifier.
|
||||
---*/
|
||||
|
||||
var obj = {};
|
||||
|
||||
obj./*{ declareWith }*/ = 42;
|
||||
|
||||
assert.sameValue(obj['/*{ referenceWith }*/'], 42, 'property exists');
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/object/ident-name-method-def-
|
||||
name: MethodDefinition
|
||||
esid: prod-PropertyDefinition
|
||||
info: |
|
||||
ObjectLiteral :
|
||||
{ PropertyDefinitionList }
|
||||
{ PropertyDefinitionList , }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
PropertyDefinitionList , PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
MethodDefinition
|
||||
...
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ( UniqueFormalParameters ){ FunctionBody }
|
||||
|
||||
PropertyName:
|
||||
LiteralPropertyName
|
||||
...
|
||||
|
||||
LiteralPropertyName:
|
||||
IdentifierName
|
||||
...
|
||||
|
||||
Reserved Words
|
||||
|
||||
A reserved word is an IdentifierName that cannot be used as an Identifier.
|
||||
---*/
|
||||
|
||||
var obj = {
|
||||
/*{ declareWith }*/() { return 42; }
|
||||
};
|
||||
|
||||
assert.sameValue(obj['/*{ referenceWith }*/'](), 42, 'property exists');
|
|
@ -0,0 +1,40 @@
|
|||
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
path: language/expressions/object/ident-name-prop-name-literal-
|
||||
name: PropertyName
|
||||
esid: prod-PropertyDefinition
|
||||
info: |
|
||||
ObjectLiteral :
|
||||
{ PropertyDefinitionList }
|
||||
{ PropertyDefinitionList , }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
PropertyDefinitionList , PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
IdentifierReference
|
||||
PropertyName : AssignmentExpression
|
||||
MethodDefinition
|
||||
... AssignmentExpression
|
||||
...
|
||||
|
||||
PropertyName:
|
||||
LiteralPropertyName
|
||||
...
|
||||
|
||||
LiteralPropertyName:
|
||||
IdentifierName
|
||||
...
|
||||
|
||||
Reserved Words
|
||||
|
||||
A reserved word is an IdentifierName that cannot be used as an Identifier.
|
||||
---*/
|
||||
|
||||
var obj = {
|
||||
/*{ declareWith }*/: 42
|
||||
};
|
||||
|
||||
assert.sameValue(obj['/*{ referenceWith }*/'], 42, 'property exists');
|
Loading…
Reference in New Issue