diff options
Diffstat (limited to 'js/src/tests/test262/language/expressions/dynamic-import/import-assertions/2nd-param-evaluation-abrupt-return.js')
-rw-r--r-- | js/src/tests/test262/language/expressions/dynamic-import/import-assertions/2nd-param-evaluation-abrupt-return.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/expressions/dynamic-import/import-assertions/2nd-param-evaluation-abrupt-return.js b/js/src/tests/test262/language/expressions/dynamic-import/import-assertions/2nd-param-evaluation-abrupt-return.js new file mode 100644 index 0000000000..e396f7cb3a --- /dev/null +++ b/js/src/tests/test262/language/expressions/dynamic-import/import-assertions/2nd-param-evaluation-abrupt-return.js @@ -0,0 +1,33 @@ +// |reftest| shell-option(--enable-import-assertions) skip-if(!xulRuntime.shell) -- requires shell-options +// Copyright (C) 2021 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: Forwards "return" completion when evaluating second parameter +esid: sec-import-call-runtime-semantics-evaluation +info: | + 2.1.1.1 EvaluateImportCall ( specifierExpression [ , optionsExpression ] ) + 1. Let referencingScriptOrModule be ! GetActiveScriptOrModule(). + 2. Let specifierRef be the result of evaluating specifierExpression. + 3. Let specifier be ? GetValue(specifierRef). + 4. If optionsExpression is present, then + a. Let optionsRef be the result of evaluating optionsExpression. + b. Let options be ? GetValue(optionsRef). + [...] +features: [dynamic-import, import-assertions] +---*/ + +var beforeCount = 0; +var afterCount = 0; +var iter = function*() { + beforeCount += 1, import('', yield), afterCount += 1; +}(); + +iter.next(); +var result = iter.return(595); + +assert.sameValue(result.done, true); +assert.sameValue(result.value, 595); +assert.sameValue(beforeCount, 1); +assert.sameValue(afterCount, 0); + +reportCompare(0, 0); |