| __proto__-duplicate-computed.js |
---
esid: sec-__proto__-property-names-in-object-initializers
es6id: B.3.1
description: >
The syntax error for duplicate `__proto__` property is not valid if the duplicate is a
ComputedPropertyName
info: |
B.3.1__proto__ Property Names in Object Initializers
It is a Syntax Error if PropertyNameList of PropertyDefinitionList contains any duplicate
entries for "__proto__" and at least two of those entries were obtained from productions of
the form
PropertyDefinition : PropertyName : AssignmentExpression .
12.2.6.6 Static Semantics: PropertyNameList
...
3. Append PropName of PropertyDefinition to the end of list.
...
12.2.6.5 Static Semantics: PropName
ComputedPropertyName : [ AssignmentExpression ]
1. Return empty.
--- |
1329 |
- |
| __proto__-duplicate.js |
---
esid: sec-__proto__-property-names-in-object-initializers
es6id: B.3.1
description: Duplicate `__proto__` property
info: |
It is a Syntax Error if PropertyNameList of PropertyDefinitionList contains
any duplicate entries for "__proto__" and at least two of those entries
were obtained from productions of the form
PropertyDefinition : PropertyName : AssignmentExpression .
negative:
phase: parse
type: SyntaxError
--- |
705 |
- |
| __proto__-fn-name.js |
---
es6id: B.3.1
description: Function name is not assigned based on the property name
info: |
[...]
6. If propKey is the String value "__proto__" and if
IsComputedPropertyKey(propKey) is false, then
a. If Type(propValue) is either Object or Null, then
i. Return object.[[SetPrototypeOf]](propValue).
b. Return NormalCompletion(empty).
7. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then
a. Let hasNameProperty be HasOwnProperty(propValue, "name").
b. ReturnIfAbrupt(hasNameProperty).
c. If hasNameProperty is false, perform SetFunctionName(propValue, propKey).
--- |
881 |
- |
| __proto__-value-non-object.js |
---
esid: sec-__proto__-property-names-in-object-initializers
es6id: B.3.1
description: >
The value of the `__proto__` property key is not assigned to the
[[Prototype]] internal slot, nor to a property named "__proto__" (non-Object,
non-null value)
info: |
...
6. If propKey is the String value "__proto__" and if
IsComputedPropertyKey(propKey) is false, then
a. If Type(propValue) is either Object or Null, then
[...]
b. Return NormalCompletion(empty).
features: [Symbol]
--- |
1966 |
- |
| __proto__-value-null.js |
---
esid: sec-__proto__-property-names-in-object-initializers
es6id: B.3.1
description: >
The value of the `__proto__` property key is assigned to the [[Prototype]]
internal slot (null value)
info: |
...
6. If propKey is the String value "__proto__" and if
IsComputedPropertyKey(propKey) is false, then
a. If Type(propValue) is either Object or Null, then
i. Return object.[[SetPrototypeOf]](propValue).
--- |
756 |
- |
| __proto__-value-obj.js |
---
esid: sec-__proto__-property-names-in-object-initializers
es6id: B.3.1
description: >
The value of the `__proto__` property key is assigned to the [[Prototype]]
internal slot (Object value)
info: |
__proto__ Property Names in Object Initializers
...
6. If propKey is the String value "__proto__" and if IsComputedPropertyKey(propKey) is false, then
a. If Type(propValue) is either Object or Null, then
i. Return object.[[SetPrototypeOf]](propValue).
b. Return NormalCompletion(empty).
...
--- |
857 |
- |