diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js')
-rw-r--r-- | js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js b/js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js new file mode 100644 index 0000000000..d2c48dfdfa --- /dev/null +++ b/js/src/tests/test262/language/module-code/instn-named-bndng-dflt-gen-anon.js @@ -0,0 +1,56 @@ +// |reftest| module +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: > + Imported binding reflects state of exported default binding ("anonymous" + generator function declaration) +esid: sec-moduledeclarationinstantiation +info: | + [...] + 17. For each element d in lexDeclarations do + a. For each element dn of the BoundNames of d do + i. If IsConstantDeclaration of d is true, then + [...] + ii. Else, + 1. Perform ! envRec.CreateMutableBinding(dn, false). + iii. If d is a GeneratorDeclaration production or a + FunctionDeclaration production, then + 1. Let fo be the result of performing InstantiateFunctionObject + for d with argument env. + 2. Call envRec.InitializeBinding(dn, fo). + [...] + + 14.4.12 Runtime Semantics: InstantiateFunctionObject + + GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } + + 1. If the function code for GeneratorDeclaration is strict mode code, let + strict be true. Otherwise let strict be false. + 2. Let F be GeneratorFunctionCreate(Normal, FormalParameters, + GeneratorBody, scope, strict). + 3. Let prototype be ObjectCreate(%GeneratorPrototype%). + 4. Perform DefinePropertyOrThrow(F, "prototype", + PropertyDescriptor{[[Value]]: prototype, [[Writable]]: true, + [[Enumerable]]: false, [[Configurable]]: false}). + 5. Perform SetFunctionName(F, "default"). + 6. Return F. + + 14.4 Generator Function Definitions + + Syntax + + GeneratorDeclaration[Yield, Default] : + function * BindingIdentifier[?Yield] ( FormalParameters[Yield] ) { GeneratorBody } + [+Default] function * ( FormalParameters[Yield] ) { GeneratorBody } +flags: [module] +features: [generators] +---*/ + +assert.sameValue(g().next().value, 23, 'generator function value is hoisted'); +assert.sameValue(g.name, 'default', 'correct name is assigned'); + +import g from './instn-named-bndng-dflt-gen-anon.js'; +export default function* () { return 23; }; + +reportCompare(0, 0); |