Last active
January 19, 2016 15:54
-
-
Save jugglinmike/358781263adac27f0e02 to your computer and use it in GitHub Desktop.
Prototype of test templates for Test262
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/arrow-function/dstr- | |
name: arrow function expression | |
es6id: 14.2.16 | |
info: | | |
ArrowFunction : ArrowParameters => ConciseBody | |
[...] | |
4. Let closure be FunctionCreate(Arrow, parameters, ConciseBody, scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var f; | |
f = (/*{ elems }*/) => { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
}; | |
f(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/class/dstr-gen-meth-static- | |
name: static class expression generator method | |
es6id: 14.5.15 | |
info: | | |
ClassDeclaration : class BindingIdentifier ClassTail | |
1. Let className be StringValue of BindingIdentifier. | |
2. Let value be the result of ClassDefinitionEvaluation of ClassTail with | |
argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
b. Else, | |
Let status be the result of performing PropertyDefinitionEvaluation for | |
m with arguments F and false. | |
[...] | |
14.4.13 Runtime Semantics: PropertyDefinitionEvaluation | |
GeneratorMethod : * PropertyName ( StrictFormalParameters ) { GeneratorBody } | |
1. Let propKey be the result of evaluating PropertyName. | |
2. ReturnIfAbrupt(propKey). | |
3. If the function code for this GeneratorMethod is strict mode code, | |
let strict be true. Otherwise let strict be false. | |
4. Let scope be the running execution context's LexicalEnvironment. | |
5. Let closure be GeneratorFunctionCreate(Method, | |
StrictFormalParameters, GeneratorBody, scope, strict). | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
class C { | |
static *method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
C.method().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/class/dstr-gen-meth- | |
name: class expression method | |
es6id: 14.5.16 | |
info: | | |
ClassDeclaration : class BindingIdentifier ClassTail | |
1. Let className be StringValue of BindingIdentifier. | |
2. Let value be the result of ClassDefinitionEvaluation of ClassTail with | |
argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
i. Let status be the result of performing | |
PropertyDefinitionEvaluation for m with arguments proto and | |
false. | |
[...] | |
14.4.13 Runtime Semantics: PropertyDefinitionEvaluation | |
GeneratorMethod : * PropertyName ( StrictFormalParameters ) { GeneratorBody } | |
1. Let propKey be the result of evaluating PropertyName. | |
2. ReturnIfAbrupt(propKey). | |
3. If the function code for this GeneratorMethod is strict mode code, | |
let strict be true. Otherwise let strict be false. | |
4. Let scope be the running execution context's LexicalEnvironment. | |
5. Let closure be GeneratorFunctionCreate(Method, | |
StrictFormalParameters, GeneratorBody, scope, strict). | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
class C { | |
*method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
new C().method().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/class/dstr-meth-static- | |
name: static class expression method | |
es6id: 14.5.15 | |
info: | | |
ClassDeclaration : class BindingIdentifier ClassTail | |
1. Let className be StringValue of BindingIdentifier. | |
2. Let value be the result of ClassDefinitionEvaluation of ClassTail with | |
argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
b. Else, | |
Let status be the result of performing PropertyDefinitionEvaluation for | |
m with arguments F and false. | |
[...] | |
14.3.8 Runtime Semantics: DefineMethod | |
MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } | |
[...] | |
6. Let closure be FunctionCreate(kind, StrictFormalParameters, FunctionBody, | |
scope, strict). If functionPrototype was passed as a parameter then pass its | |
value as the functionPrototype optional argument of FunctionCreate. | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
class C { | |
static method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
C.method(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/class/dstr-meth- | |
name: class expression method | |
es6id: 14.5.15 | |
info: | | |
ClassDeclaration : class BindingIdentifier ClassTail | |
1. Let className be StringValue of BindingIdentifier. | |
2. Let value be the result of ClassDefinitionEvaluation of ClassTail with | |
argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
i. Let status be the result of performing | |
PropertyDefinitionEvaluation for m with arguments proto and | |
false. | |
[...] | |
14.3.8 Runtime Semantics: DefineMethod | |
MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } | |
[...] | |
6. Let closure be FunctionCreate(kind, StrictFormalParameters, FunctionBody, | |
scope, strict). If functionPrototype was passed as a parameter then pass its | |
value as the functionPrototype optional argument of FunctionCreate. | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
class C { | |
method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
new C().method(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/class/dstr-gen-meth-static- | |
name: static class expression generator method | |
es6id: 14.5.16 | |
info: | | |
ClassExpression : class BindingIdentifieropt ClassTail | |
1. If BindingIdentifieropt is not present, let className be undefined. | |
2. Else, let className be StringValue of BindingIdentifier. | |
3. Let value be the result of ClassDefinitionEvaluation of ClassTail | |
with argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
b. Else, | |
Let status be the result of performing PropertyDefinitionEvaluation | |
for m with arguments F and false. | |
[...] | |
14.4.13 Runtime Semantics: PropertyDefinitionEvaluation | |
GeneratorMethod : | |
* PropertyName ( StrictFormalParameters ) { GeneratorBody } | |
1. Let propKey be the result of evaluating PropertyName. | |
2. ReturnIfAbrupt(propKey). | |
3. If the function code for this GeneratorMethod is strict mode code, | |
let strict be true. Otherwise let strict be false. | |
4. Let scope be the running execution context's LexicalEnvironment. | |
5. Let closure be GeneratorFunctionCreate(Method, | |
StrictFormalParameters, GeneratorBody, scope, strict). | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var C = class { | |
static *method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
C.method().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/class/dstr-gen-meth- | |
name: class expression method | |
es6id: 14.5.16 | |
info: | | |
ClassExpression : class BindingIdentifieropt ClassTail | |
1. If BindingIdentifieropt is not present, let className be undefined. | |
2. Else, let className be StringValue of BindingIdentifier. | |
3. Let value be the result of ClassDefinitionEvaluation of ClassTail | |
with argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
i. Let status be the result of performing | |
PropertyDefinitionEvaluation for m with arguments proto and | |
false. | |
[...] | |
14.4.13 Runtime Semantics: PropertyDefinitionEvaluation | |
GeneratorMethod : | |
* PropertyName ( StrictFormalParameters ) { GeneratorBody } | |
1. Let propKey be the result of evaluating PropertyName. | |
2. ReturnIfAbrupt(propKey). | |
3. If the function code for this GeneratorMethod is strict mode code, | |
let strict be true. Otherwise let strict be false. | |
4. Let scope be the running execution context's LexicalEnvironment. | |
5. Let closure be GeneratorFunctionCreate(Method, | |
StrictFormalParameters, GeneratorBody, scope, strict). | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var C = class { | |
*method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
new C().method().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/class/dstr-meth-static- | |
name: static class expression method | |
es6id: 14.5.16 | |
info: | | |
ClassExpression : class BindingIdentifieropt ClassTail | |
1. If BindingIdentifieropt is not present, let className be undefined. | |
2. Else, let className be StringValue of BindingIdentifier. | |
3. Let value be the result of ClassDefinitionEvaluation of ClassTail | |
with argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
b. Else, | |
Let status be the result of performing PropertyDefinitionEvaluation for | |
m with arguments F and false. | |
[...] | |
14.3.8 Runtime Semantics: DefineMethod | |
MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } | |
[...] | |
6. Let closure be FunctionCreate(kind, StrictFormalParameters, FunctionBody, | |
scope, strict). If functionPrototype was passed as a parameter then pass its | |
value as the functionPrototype optional argument of FunctionCreate. | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var C = class { | |
static method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
C.method(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/class/dstr-meth- | |
name: class expression method | |
es6id: 14.5.16 | |
info: | | |
ClassExpression : class BindingIdentifieropt ClassTail | |
1. If BindingIdentifieropt is not present, let className be undefined. | |
2. Else, let className be StringValue of BindingIdentifier. | |
3. Let value be the result of ClassDefinitionEvaluation of ClassTail | |
with argument className. | |
[...] | |
14.5.14 Runtime Semantics: ClassDefinitionEvaluation | |
21. For each ClassElement m in order from methods | |
a. If IsStatic of m is false, then | |
i. Let status be the result of performing | |
PropertyDefinitionEvaluation for m with arguments proto and | |
false. | |
[...] | |
14.3.8 Runtime Semantics: DefineMethod | |
MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } | |
[...] | |
6. Let closure be FunctionCreate(kind, StrictFormalParameters, FunctionBody, | |
scope, strict). If functionPrototype was passed as a parameter then pass its | |
value as the functionPrototype optional argument of FunctionCreate. | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var C = class { | |
method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
new C().method(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/const/dstr- | |
name: > | |
`const` statement | |
es6id: 13.3.1.4 | |
info: | | |
LexicalBinding : BindingPattern Initializer | |
1. Let rhs be the result of evaluating Initializer. | |
2. Let value be GetValue(rhs). | |
3. ReturnIfAbrupt(value). | |
4. Let env be the running execution context's LexicalEnvironment. | |
5. Return the result of performing BindingInitialization for BindingPattern | |
using value and env as the arguments. | |
---*/ | |
const /*{ elems }*/ = /*{ vals }*/; | |
/*{ body }*/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/function/dstr- | |
name: function declaration | |
es6id: 14.1.19 | |
info: | | |
FunctionDeclaration : | |
function BindingIdentifier ( FormalParameters ) { FunctionBody } | |
[...] | |
3. Let F be FunctionCreate(Normal, FormalParameters, FunctionBody, | |
scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
function f(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
}; | |
f(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/function/dstr- | |
name: function expression | |
es6id: 14.1.20 | |
info: | | |
FunctionExpression : function ( FormalParameters ) { FunctionBody } | |
[...] | |
3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody, | |
scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var f; | |
f = function(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
}; | |
f(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/generators/dstr- | |
name: generator function declaration | |
es6id: 14.4.12 | |
info: | | |
GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } | |
[...] | |
2. Let F be GeneratorFunctionCreate(Normal, FormalParameters, | |
GeneratorBody, scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
function* f(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
}; | |
f().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/generators/dstr- | |
name: generator function expression | |
es6id: 14.4.14 | |
info: | | |
GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } | |
[...] | |
3. Let closure be GeneratorFunctionCreate(Normal, FormalParameters, | |
GeneratorBody, scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var f; | |
f = function*(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
}; | |
f().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/object/dstr-gen-meth- | |
name: generator method | |
es6id: 14.4.13 | |
info: | | |
GeneratorMethod : | |
* PropertyName ( StrictFormalParameters ) { GeneratorBody } | |
1. Let propKey be the result of evaluating PropertyName. | |
2. ReturnIfAbrupt(propKey). | |
3. If the function code for this GeneratorMethod is strict mode code, | |
let strict be true. Otherwise let strict be false. | |
4. Let scope be the running execution context's LexicalEnvironment. | |
5. Let closure be GeneratorFunctionCreate(Method, | |
StrictFormalParameters, GeneratorBody, scope, strict). | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var obj = { | |
*method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
obj.method().next(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/let/dstr- | |
name: > | |
`let` statement | |
es6id: 13.3.1.4 | |
info: | | |
LexicalBinding : BindingPattern Initializer | |
1. Let rhs be the result of evaluating Initializer. | |
2. Let value be GetValue(rhs). | |
3. ReturnIfAbrupt(value). | |
4. Let env be the running execution context's LexicalEnvironment. | |
5. Return the result of performing BindingInitialization for BindingPattern | |
using value and env as the arguments. | |
---*/ | |
let /*{ elems }*/ = /*{ vals }*/; | |
/*{ body }*/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/expressions/object/dstr-meth- | |
name: method | |
es6id: 14.3.8 | |
info: | | |
MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } | |
[...] | |
6. Let closure be FunctionCreate(kind, StrictFormalParameters, | |
FunctionBody, scope, strict). If functionPrototype was passed as a | |
parameter then pass its value as the functionPrototype optional argument | |
of FunctionCreate. | |
[...] | |
9.2.1 [[Call]] ( thisArgument, argumentsList) | |
[...] | |
7. Let result be OrdinaryCallEvaluateBody(F, argumentsList). | |
[...] | |
9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList ) | |
1. Let status be FunctionDeclarationInstantiation(F, argumentsList). | |
[...] | |
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) | |
[...] | |
23. Let iteratorRecord be Record {[[iterator]]: | |
CreateListIterator(argumentsList), [[done]]: false}. | |
24. If hasDuplicates is true, then | |
[...] | |
25. Else, | |
b. Let formalStatus be IteratorBindingInitialization for formals with | |
iteratorRecord and env as arguments. | |
[...] | |
---*/ | |
var callCount = 0; | |
var obj = { | |
method(/*{ elems }*/) { | |
/*{ body }*/ | |
callCount = callCount + 1; | |
} | |
}; | |
obj.method(/*{ vals }*/); | |
assert.sameValue(callCount, 1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*--- | |
path: language/statements/variable/dstr- | |
name: > | |
`var` statement | |
es6id: 13.3.2.4 | |
info: | | |
VariableDeclaration : BindingPattern Initializer | |
1. Let rhs be the result of evaluating Initializer. | |
2. Let rval be GetValue(rhs). | |
3. ReturnIfAbrupt(rval). | |
4. Return the result of performing BindingInitialization for | |
BindingPattern passing rval and undefined as arguments. | |
---*/ | |
var /*{ elems }*/ = /*{ vals }*/; | |
/*{ body }*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment