mirror of https://github.com/tc39/test262.git
Coverage: Computed Property Names. Fixes gh-1741
This commit is contained in:
parent
be7e9ff98b
commit
4ca3c51afd
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from additive expression "add"
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1 + 1
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from additive expression "subtract"
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1 - 1
|
||||
//- value
|
||||
0
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from arrow function
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
() => { }
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from assignment expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x = 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 1);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from assignment expression bitwise or
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x |= 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 1);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from assignment expression coalesce
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = null;
|
||||
//- ComputedPropertyName
|
||||
x ??= 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 1);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from assignment expression logical and
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x &&= 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 0);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from assignment expression logical or
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x ||= 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 1);
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from function expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
async () => {}
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from condition expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
false ? 1 : 2
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from condition expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
true ? 1 : 2
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from decimal e notational literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1.e1
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from decimal literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1.1
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from exponentiation expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
2 ** 2
|
||||
//- value
|
||||
4
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from coalesce
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x;
|
||||
//- ComputedPropertyName
|
||||
x ?? 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, undefined);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from logical and
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x && 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 0);
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from logical or
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
let x = 0;
|
||||
//- ComputedPropertyName
|
||||
x || 1
|
||||
//- value
|
||||
2
|
||||
//- teardown
|
||||
assert.sameValue(x, 0);
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from function
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
function f() {}
|
||||
//- ComputedPropertyName
|
||||
f()
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from function expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
function () {}
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,14 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from generator function
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- setup
|
||||
function * g() { return 1; }
|
||||
//- ComputedPropertyName
|
||||
g()
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,16 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from string literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- setup
|
||||
let x = 1;
|
||||
|
||||
//- ComputedPropertyName
|
||||
x
|
||||
//- value
|
||||
'2'
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from numeric literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from integer with separators
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
1_2_3_4_5_6_7_8
|
||||
//- value
|
||||
1_2_3_4_5_6_7_8
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from math
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
1 + 2 - 3 * 4 / 5 ** 6
|
||||
//- value
|
||||
2.999232
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from multiplicative expression "divide"
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1 / 1
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from multiplicative expression "multiply"
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1 * 1
|
||||
//- value
|
||||
1
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from numeric literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
1
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from string literal
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
|
||||
//- ComputedPropertyName
|
||||
'1'
|
||||
//- value
|
||||
'2'
|
|
@ -0,0 +1,12 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
desc: Computed property name from condition expression
|
||||
template: evaluation
|
||||
features: [computed-property-names]
|
||||
---*/
|
||||
//- ComputedPropertyName
|
||||
true ? 1 : 2
|
||||
//- value
|
||||
2
|
|
@ -0,0 +1,72 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/statements/class/cpn-accessors-
|
||||
name: ComputedPropertyName in ClassDeclaration
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
class C {
|
||||
get [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
set [/*{ComputedPropertyName}*/](v) {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
static get [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
static set [/*{ComputedPropertyName}*/](v) {
|
||||
return /*{value}*/;
|
||||
}
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/] = /*{value}*/,
|
||||
/*{value}*/
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/] = /*{value}*/,
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,55 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/statements/class/cpn-fields-methods-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
[/*{ComputedPropertyName}*/] = () => {
|
||||
return /*{value}*/;
|
||||
};
|
||||
|
||||
static [/*{ComputedPropertyName}*/] = () => {
|
||||
return /*{value}*/;
|
||||
};
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/statements/class/cpn-fields-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
[/*{ComputedPropertyName}*/] = /*{value}*/;
|
||||
|
||||
static [/*{ComputedPropertyName}*/] = /*{value}*/;
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,54 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/statements/class/cpn-
|
||||
name: ComputedPropertyName in ClassDeclaration
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
class C {
|
||||
[/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
static [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,72 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/class/cpn-accessors-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
get [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
set [/*{ComputedPropertyName}*/](v) {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
static get [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
|
||||
static set [/*{ComputedPropertyName}*/](v) {
|
||||
return /*{value}*/;
|
||||
}
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/] = /*{value}*/,
|
||||
/*{value}*/
|
||||
);
|
||||
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/] = /*{value}*/,
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,55 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/class/cpn-fields-methods-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
[/*{ComputedPropertyName}*/] = () => {
|
||||
return /*{value}*/;
|
||||
};
|
||||
|
||||
static [/*{ComputedPropertyName}*/] = () => {
|
||||
return /*{value}*/;
|
||||
};
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,51 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/class/cpn-fields-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
[/*{ComputedPropertyName}*/] = /*{value}*/;
|
||||
|
||||
static [/*{ComputedPropertyName}*/] = /*{value}*/;
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,54 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/class/cpn-
|
||||
name: ComputedPropertyName in ClassExpression
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ClassExpression:
|
||||
classBindingIdentifier opt ClassTail
|
||||
|
||||
ClassTail:
|
||||
ClassHeritage opt { ClassBody opt }
|
||||
|
||||
ClassBody:
|
||||
ClassElementList
|
||||
|
||||
ClassElementList:
|
||||
ClassElement
|
||||
|
||||
ClassElement:
|
||||
MethodDefinition
|
||||
|
||||
MethodDefinition:
|
||||
PropertyName ...
|
||||
get PropertyName ...
|
||||
set PropertyName ...
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let C = class {
|
||||
[/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
static [/*{ComputedPropertyName}*/]() {
|
||||
return /*{value}*/;
|
||||
}
|
||||
};
|
||||
|
||||
let c = new C();
|
||||
|
||||
assert.sameValue(
|
||||
c[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
||||
assert.sameValue(
|
||||
C[/*{ComputedPropertyName}*/](),
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/object/cpn-
|
||||
name: ComputedPropertyName in ObjectLiteral
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ObjectLiteral:
|
||||
{ PropertyDefinitionList }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
PropertyName: AssignmentExpression
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let o = {
|
||||
[/*{ComputedPropertyName}*/]: /*{value}*/
|
||||
};
|
||||
|
||||
assert.sameValue(
|
||||
o[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
path: language/expressions/object/cpn-
|
||||
name: ComputedPropertyName in ObjectLiteral
|
||||
esid: prod-ComputedPropertyName
|
||||
info: |
|
||||
ObjectLiteral:
|
||||
{ PropertyDefinitionList }
|
||||
|
||||
PropertyDefinitionList:
|
||||
PropertyDefinition
|
||||
|
||||
PropertyDefinition:
|
||||
PropertyName: AssignmentExpression
|
||||
|
||||
PropertyName:
|
||||
ComputedPropertyName
|
||||
|
||||
ComputedPropertyName:
|
||||
[ AssignmentExpression ]
|
||||
---*/
|
||||
|
||||
let o = {
|
||||
[/*{ComputedPropertyName}*/]: /*{value}*/
|
||||
};
|
||||
|
||||
assert.sameValue(
|
||||
o[/*{ComputedPropertyName}*/],
|
||||
/*{value}*/
|
||||
);
|
Loading…
Reference in New Issue