binding.js |
---
es6id: 14.5
description: >
class subclass binding
--- |
1443 |
browser.js |
|
0 |
builtin-objects |
|
|
builtins.js |
---
es6id: 14.5
description: >
class sublclassing builtins
--- |
993 |
class-definition-evaluation-empty-constructor-heritage-present.js |
---
es6id: 14.5.14
description: >
10. If constructor is empty, then,
a. If ClassHeritageopt is present, then
i. Let constructor be the result of parsing the String "constructor(... args){ super (...args);}" using the syntactic grammar with the goal symbol MethodDefinition.
--- |
783 |
class-definition-null-proto-contains-return-override.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
es6id: 14.5.14
description: >
The constructor of a null-extending class can contain an explicit return value.
info: |
Runtime Semantics: ClassDefinitionEvaluation
[...]
15. If ClassHeritageopt is present, then set F's [[ConstructorKind]] internal slot to "derived".
[...]
9.2.2 [[Construct]]
[...]
13. If result.[[Type]] is return, then
a. If Type(result.[[Value]]) is Object, return NormalCompletion(result.[[Value]]).
[...]
--- |
869 |
class-definition-null-proto-missing-return-override.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
The `this` value of a null-extending class isn't automatically initialized,
which makes it necessary to have an explicit return value in the constructor.
info: |
Runtime Semantics: ClassDefinitionEvaluation
[...]
5. If ClassHeritageopt is not present, then
[...]
6. Else,
[...]
b. Let superclass be the result of evaluating ClassHeritage.
[...]
15. If ClassHeritageopt is present, then set F's [[ConstructorKind]] internal slot to "derived".
[...]
9.2.2 [[Construct]]
[...]
15. Return ? envRec.GetThisBinding().
8.1.1.3.4 GetThisBinding ( )
[...]
3. If envRec.[[ThisBindingStatus]] is "uninitialized", throw a ReferenceError exception.
[...]
--- |
1043 |
class-definition-null-proto-super.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
Attempting to call `super()` in a null-extending class throws a TypeError,
because %FunctionPrototype% cannot be called as constructor function.
info: |
Runtime Semantics: ClassDefinitionEvaluation
[...]
5. If ClassHeritageopt is not present, then
[...]
6. Else,
[...]
b. Let superclass be the result of evaluating ClassHeritage.
[...]
e. If superclass is null, then
[...]
ii. Let constructorParent be the intrinsic object %FunctionPrototype%.
[...]
15. Let constructorInfo be the result of performing DefineMethod for constructor with arguments proto and constructorParent as the optional functionPrototype argument.
[...]
12.3.5.1 Runtime Semantics: Evaluation
SuperCall : super Arguments
[...]
3. Let func be ! GetSuperConstructor().
4. Let argList be ? ArgumentListEvaluation of Arguments.
5. If IsConstructor(func) is false, throw a TypeError exception.
[...]
--- |
1448 |
class-definition-null-proto-this.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
The `this` value of a null-extending class isn't automatically initialized
info: |
Runtime Semantics: ClassDefinitionEvaluation
[...]
15. If ClassHeritageopt is present, then set F's [[ConstructorKind]] internal slot to "derived".
[...]
12.2.2.1 Runtime Semantics: Evaluation
PrimaryExpression : this
1. Return ? ResolveThisBinding( ).
8.3.4 ResolveThisBinding ( )
[...]
2. Return ? envRec.GetThisBinding().
8.1.1.3.4 GetThisBinding ( )
[...]
3. If envRec.[[ThisBindingStatus]] is "uninitialized", throw a ReferenceError exception.
[...]
--- |
1068 |
class-definition-null-proto.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
es6id: 14.5.14
description: >
The prototype of a null-extending class is %FunctionPrototype%, the prototype of
its "prototype" property is `null`.
info: |
Runtime Semantics: ClassDefinitionEvaluation
[...]
5. If ClassHeritageopt is not present, then
[...]
6. Else,
[...]
b. Let superclass be the result of evaluating ClassHeritage.
[...]
e. If superclass is null, then
i. Let protoParent be null.
ii. Let constructorParent be the intrinsic object %FunctionPrototype%.
[...]
--- |
985 |
class-definition-parent-proto-null.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: A class which extends a constructor with null .prototype is a derived class.
--- |
592 |
default-constructor-2.js |
---
es6id: 14.5
description: >
class default constructor 2
--- |
1587 |
default-constructor-spread-override.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
Default class constructor does not use argument evaluation.
features: [Symbol.iterator]
--- |
594 |
default-constructor.js |
---
es6id: 14.5
description: >
class default constructor
--- |
535 |
derived-class-return-override-catch-finally-arrow.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
`super()` in finally block is executed before checking for missing `super()`
call when `return` is in a catch block. The `super()` call is performed
through an arrow function.
--- |
662 |
derived-class-return-override-catch-finally.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
`super()` in finally block is executed before checking for missing `super()`
call when `return` is in a catch block.
--- |
577 |
derived-class-return-override-catch-super-arrow.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
TypeError from `return 0` is not catchable with `super` called in catch block
from an arrow function.
--- |
552 |
derived-class-return-override-catch-super.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
TypeError from `return 0` is not catchable with `super` in catch block.
--- |
496 |
derived-class-return-override-catch.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
TypeError from `return 0` is not catchable.
--- |
481 |
derived-class-return-override-finally-super-arrow.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
`super()` in finally block is executed before checking for missing `super()`
call when `return` is in a try block. The `super()` call is performed
through an arrow function.
--- |
625 |
derived-class-return-override-finally-super.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
`super()` in finally block is executed before checking for missing `super()`
call when `return` is in a try block.
--- |
540 |
derived-class-return-override-for-of-arrow.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
ReferenceError when returning from a derived class constructor without calling
`super()` is thrown after the function body has been left, so an iterator
return handler can still call `super()`.
--- |
822 |
derived-class-return-override-for-of.js |
---
esid: sec-ecmascript-function-objects-construct-argumentslist-newtarget
description: >
TypeError from `return 0` is thrown after the function body has been left, so
an error thrown from an iterator has precedence.
--- |
727 |
derived-class-return-override-with-boolean.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, throw a TypeError exception.
...
`return true;`
--- |
591 |
derived-class-return-override-with-empty.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, ...
14. Else, ReturnIfAbrupt(result).
15. Return envRec.GetThisBinding().
`return (empty);` Should be the same as `return undefined;`
--- |
952 |
derived-class-return-override-with-null.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, throw a TypeError exception.
...
`return null;`
--- |
591 |
derived-class-return-override-with-number.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, throw a TypeError exception.
...
`return 0;`
--- |
585 |
derived-class-return-override-with-object.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
a. If Type(result.[[value]]) is Object, return NormalCompletion(result.[[value]]).
...
...
`return {};`
--- |
908 |
derived-class-return-override-with-string.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, throw a TypeError exception.
...
`return "";`
--- |
587 |
derived-class-return-override-with-symbol.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, throw a TypeError exception.
...
`return Symbol();`
features: [Symbol]
--- |
618 |
derived-class-return-override-with-this.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
b. If kind is "base", return NormalCompletion(thisArgument).
...
...
`return this;`
--- |
876 |
derived-class-return-override-with-undefined.js |
---
es6id: 9.2.2
description: >
[[Construct]] ( argumentsList, newTarget)
...
13. If result.[[type]] is return, then
...
c. If result.[[value]] is not undefined, ...
14. Else, ReturnIfAbrupt(result).
15. Return envRec.GetThisBinding().
`return undefined;`
--- |
923 |
shell.js |
|
0 |
superclass-arrow-function.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
IsConstructor check is performed before "prototype" lookup.
Arrow functions are not constructors (MakeConstructor is not called on them).
info: |
ClassDefinitionEvaluation
[...]
5. Else,
[...]
d. Let superclass be ? GetValue(superclassRef).
e. If superclass is null, then
[...]
f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
features: [arrow-function, class, Proxy]
--- |
1334 |
superclass-async-function.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
IsConstructor check is performed before "prototype" lookup.
Async functions are not constructors (MakeConstructor is not called on them).
info: |
ClassDefinitionEvaluation
[...]
5. Else,
[...]
d. Let superclass be ? GetValue(superclassRef).
e. If superclass is null, then
[...]
f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
features: [async-functions, class, Proxy]
--- |
1361 |
superclass-async-generator-function.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
IsConstructor check is performed before "prototype" lookup.
Async generator functions are not constructors (MakeConstructor is not called on them).
info: |
ClassDefinitionEvaluation
[...]
5. Else,
[...]
d. Let superclass be ? GetValue(superclassRef).
e. If superclass is null, then
[...]
f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
features: [async-iteration, class, Proxy]
--- |
1142 |
superclass-bound-function.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: SuperClass may be a bound function object
info: |
ClassDefinitionEvaluation
[...]
5. Else,
[...]
f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
g. Else,
i. Let protoParent be ? Get(superclass, "prototype").
ii. If Type(protoParent) is neither Object nor Null, throw a TypeError exception.
iii. Let constructorParent be superclass.
features: [class]
--- |
801 |
superclass-generator-function.js |
---
esid: sec-runtime-semantics-classdefinitionevaluation
description: >
IsConstructor check is performed before "prototype" lookup.
Generator functions are not constructors (MakeConstructor is not called on them).
info: |
ClassDefinitionEvaluation
[...]
5. Else,
[...]
d. Let superclass be ? GetValue(superclassRef).
e. If superclass is null, then
[...]
f. Else if IsConstructor(superclass) is false, throw a TypeError exception.
features: [generators, class, Proxy]
--- |
1121 |
superclass-prototype-setter-constructor.js |
---
es6id: 14.5
description: >
superclass setter "constructor" override
--- |
424 |
superclass-prototype-setter-method-override.js |
---
es6id: 14.5
description: >
superclass prototype override
--- |
474 |
superclass-static-method-override.js |
---
es6id: 14.5
description: >
Static method override
--- |
505 |