diff --git a/src/async-generators/yield-star-async-next.case b/src/async-generators/yield-star-async-next.case index 8fa0d3d55028a5488b093474337f811bb257de6c..eaa0c23554a22fa718054a96d4ef7d8e6cf3c9af 100644 --- a/src/async-generators/yield-star-async-next.case +++ b/src/async-generators/yield-star-async-next.case @@ -14,16 +14,15 @@ YieldExpression: yield * AssignmentExpression 5. Let received be NormalCompletion(undefined). 6. Repeat a. If received.[[Type]] is normal, then - i. Let innerResult be ? IteratorNext(iterator, received.[[Value]]). - ii. Let innerResult be ? Invoke(iterator, "next", - « received.[[Value]] »). - iii. If generatorKind is async, then set innerResult to - ? Await(innerResult). + i. Let innerResult be ? Invoke(iterator, "next", « received.[[Value]] »). + ii. If generatorKind is async, then set innerResult to ? Await(innerResult). ... - v. Let done be ? IteratorComplete(innerResult). - vi. If done is true, then - 1. Return ? IteratorValue(innerResult). - vii. Let received be GeneratorYield(innerResult). + iv. Let done be ? IteratorComplete(innerResult). + v. If done is true, then + 1. Let resultValue be ? IteratorValue(innerResult). + 2. If generatorKind is async, then set resultValue to ? Await(resultValue). + 3. Return resultValue. + vi. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... GetIterator ( obj [ , hint ] ) @@ -37,13 +36,10 @@ YieldExpression: yield * AssignmentExpression iii. Return ? CreateAsyncFromSyncIterator(syncIterator). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... flags: [async] @@ -206,44 +202,41 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/src/async-generators/yield-star-async-return.case b/src/async-generators/yield-star-async-return.case index 4f824d62a66487e5dc06892ac9b94e26d6124d4a..f313ec8d9e1d048eae6ebb77187a802e51c231b7 100644 --- a/src/async-generators/yield-star-async-return.case +++ b/src/async-generators/yield-star-async-return.case @@ -14,27 +14,21 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... - flags: [async] features: [async-iteration, Symbol.asyncIterator] ---*/ @@ -186,42 +180,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/src/async-generators/yield-star-async-throw.case b/src/async-generators/yield-star-async-throw.case index 29a40456666ca323e64dd5fefb363e0d9acf5ee9..89ed53d442ed1c5df34a0e1d70710d880184e12f 100644 --- a/src/async-generators/yield-star-async-throw.case +++ b/src/async-generators/yield-star-async-throw.case @@ -14,22 +14,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... flags: [async] @@ -188,45 +186,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/src/params/error/async-gen-named-func-expr.template b/src/params/error/async-gen-named-func-expr.template index 0237b9ae9245ada7081e60e6b4afd163b0e68191..852b2c1a7d0ab9bb893dcc83d91f9497cc07e7df 100644 --- a/src/params/error/async-gen-named-func-expr.template +++ b/src/params/error/async-gen-named-func-expr.template @@ -13,7 +13,6 @@ info: | 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, funcEnv, strict). [...] -flags: [async] features: [async-iteration] ---*/ diff --git a/test/intl402/DateTimeFormat/prototype/formatToParts/length.js b/test/intl402/DateTimeFormat/prototype/formatToParts/length.js index 49ceae3bcc4e01f08805f2b2d64510d31ead13a1..948a7f892974e8008ba82ec53494995f9b37b36f 100644 --- a/test/intl402/DateTimeFormat/prototype/formatToParts/length.js +++ b/test/intl402/DateTimeFormat/prototype/formatToParts/length.js @@ -6,7 +6,7 @@ description: Intl.DateTimeFormat.prototype.formatToParts.length. includes: [propertyHelper.js] ---*/ -assert.sameValue(Intl.DateTimeFormat.prototype.formatToParts.length, 0); +assert.sameValue(Intl.DateTimeFormat.prototype.formatToParts.length, 1); verifyNotEnumerable(Intl.DateTimeFormat.prototype.formatToParts, "length"); verifyNotWritable(Intl.DateTimeFormat.prototype.formatToParts, "length"); diff --git a/test/intl402/NumberFormat/11.1.1_32.js b/test/intl402/NumberFormat/11.1.1_32.js index fba78bb8f1ec4cd9a9b0a34dc186196bbc1828da..cc45b009e292b4277a7f2e02b2baa23c17d427a4 100644 --- a/test/intl402/NumberFormat/11.1.1_32.js +++ b/test/intl402/NumberFormat/11.1.1_32.js @@ -9,28 +9,23 @@ description: > author: Norbert Lindenberg ---*/ -var read = 0; +var minimumSignificantDigitsRead = false; +var maximumSignificantDigitsRead = false; function readMinimumSignificantDigits() { - ++read; - if (read === 1) { - return 0; // invalid value, but on first read that's OK - } else if (read === 3) { - return 1; // valid value - } else { - $ERROR("minimumSignificantDigits read out of sequence: " + read + "."); - } + assert.sameValue(minimumSignificantDigitsRead, false, + "minimumSignificantDigits getter already called"); + assert.sameValue(maximumSignificantDigitsRead, false, + "maximumSignificantDigits getter called before minimumSignificantDigits"); + minimumSignificantDigitsRead = true; + return 1; } function readMaximumSignificantDigits() { - ++read; - if (read === 2) { - return 0; // invalid value, but on first read that's OK - } else if (read === 4) { - return 1; // valid value - } else { - $ERROR("maximumSignificantDigits read out of sequence: " + read + "."); - } + assert.sameValue(maximumSignificantDigitsRead, false, + "maximumSignificantDigits getter already called"); + maximumSignificantDigitsRead = true; + return 1; } var options = {}; @@ -41,6 +36,5 @@ Object.defineProperty(options, "maximumSignificantDigits", new Intl.NumberFormat("de", options); -if (read !== 4) { - $ERROR("insuffient number of property reads: " + read + "."); -} +assert(minimumSignificantDigitsRead, "minimumSignificantDigits getter was called once"); +assert(maximumSignificantDigitsRead, "maximumSignificantDigits getter was called once"); diff --git a/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js index 6cefcb96d21d2c25a3cf78974fd34f16d9c71c21..00eed32e4e6f2d9880a8b4d7d8b2442d0944ddbf 100644 --- a/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js +++ b/test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js @@ -17,5 +17,5 @@ assert.throws(RangeError, () => new Intl.NumberFormat('en', { assert.throws(RangeError, () => new Intl.NumberFormat('en', { style: 'currency', currency: 'CLF', - maximumFractionDigits: 4 -}), 'CurrencyDigits(CLF) == 4'); + maximumFractionDigits: 3 +}), 'CurrencyDigits(CLF) == 3'); diff --git a/test/intl402/PluralRules/prototype/prototype.js b/test/intl402/PluralRules/prototype/prototype.js index c3b9bcae58ff3a530b9225fe36336702e562764f..c42e80331c73b444f89cb5799e1d19411b542314 100644 --- a/test/intl402/PluralRules/prototype/prototype.js +++ b/test/intl402/PluralRules/prototype/prototype.js @@ -4,14 +4,13 @@ /*--- esid: sec-properties-of-intl-pluralrules-prototype-object description: > - Tests that Intl.PluralRules.prototype is an object that has been + Tests that Intl.PluralRules.prototype is not an object that has been initialized as an Intl.PluralRules. author: Zibi Braniecki ---*/ -// test by calling a function that would fail if "this" were not an object +// test by calling a function that fails if "this" is not an object // initialized as an Intl.PluralRules -if (typeof Intl.PluralRules.prototype.select(0) !== "string") { - $ERROR("Intl.PluralRules's prototype is not an object that has been " + - "initialized as an Intl.PluralRules"); -} +assert.throws(TypeError, function() { + Intl.PluralRules.prototype.select(0); +}, "Intl.PluralRules.prototype is not an object that has been initialized as an Intl.PluralRules"); diff --git a/test/intl402/PluralRules/this-not-ignored.js b/test/intl402/PluralRules/this-not-ignored.js deleted file mode 100644 index 922fcc51b5c2490abcdcc794e739dacdf1da1db8..0000000000000000000000000000000000000000 --- a/test/intl402/PluralRules/this-not-ignored.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2016 Mozilla Corporation. All rights reserved. -// This code is governed by the license found in the LICENSE file. - -/*--- -esid: sec-Intl.PluralRules -description: Tests that the this-value is ignored in PluralRules -author: Zibi Braniecki -includes: [testIntl.js] ----*/ - -testWithIntlConstructors(function (Constructor) { - var obj, newObj; - - // variant 1: use constructor in a "new" expression - obj = new Constructor(); - newObj = Intl.PluralRules.call(obj); - if (obj === newObj) { - $ERROR("PluralRules object created with \"new\" was not ignored as this-value."); - } - - // variant 2: use constructor as a function - obj = Constructor(); - newObj = Intl.PluralRules.call(obj); - if (obj === newObj) { - $ERROR("PluralRules object created with constructor as function was not ignored as this-value."); - } - - return true; -}); diff --git a/test/intl402/PluralRules/undefined-newtarget-throws.js b/test/intl402/PluralRules/undefined-newtarget-throws.js new file mode 100644 index 0000000000000000000000000000000000000000..672f0c9e2cf73400ab7b0386a82543fa4ac5c1b3 --- /dev/null +++ b/test/intl402/PluralRules/undefined-newtarget-throws.js @@ -0,0 +1,27 @@ +// Copyright 2016 Mozilla Corporation. All rights reserved. +// This code is governed by the license found in the LICENSE file. + +/*--- +esid: sec-Intl.PluralRules +description: Tests that PluralRules throws when called as a function +author: Zibi Braniecki +includes: [testIntl.js] +---*/ + +assert.throws(TypeError, function() { + Intl.PluralRules(); +}, "Intl.PluralRules throws when called as a function"); + +assert.throws(TypeError, function() { + Intl.PluralRules.call(undefined); +}, "Intl.PluralRules throws when called as a function with |undefined| as this-value"); + +testWithIntlConstructors(function (Constructor) { + var obj = new Constructor(); + + assert.throws(TypeError, function() { + Intl.PluralRules.call(obj) + }, "Intl.PluralRules throws when called as a function with an Intl-object as this-value"); + + return true; +}); diff --git a/test/language/expressions/async-generator/named-yield-star-async-next.js b/test/language/expressions/async-generator/named-yield-star-async-next.js index f50070eb5fe15b166ecc6a38079b4fefdc7a00fd..cfc868fee7ae8022cdf453f706a084a79840310f 100644 --- a/test/language/expressions/async-generator/named-yield-star-async-next.js +++ b/test/language/expressions/async-generator/named-yield-star-async-next.js @@ -179,45 +179,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/named-yield-star-async-return.js b/test/language/expressions/async-generator/named-yield-star-async-return.js index 862d4b8e26a22c22ae4a240c752ae64b3f211862..d2c939362503d6a3f893c9cd2a7183aca69fbf39 100644 --- a/test/language/expressions/async-generator/named-yield-star-async-return.js +++ b/test/language/expressions/async-generator/named-yield-star-async-return.js @@ -23,25 +23,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -199,42 +194,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/named-yield-star-async-throw.js b/test/language/expressions/async-generator/named-yield-star-async-throw.js index 20898e11ef116e82ec8db98f650b7076016cb264..fed558ba954dc887729eb0c6ab4b1d0c1cd4a8c4 100644 --- a/test/language/expressions/async-generator/named-yield-star-async-throw.js +++ b/test/language/expressions/async-generator/named-yield-star-async-throw.js @@ -23,22 +23,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -201,45 +199,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/params-named-dflt-abrupt.js b/test/language/expressions/async-generator/params-named-dflt-abrupt.js index 4ffc0f0253bd91585654dfb7906505ea39612755..6621d0bbc2cddae8b658584fdd42c1abe68267f9 100644 --- a/test/language/expressions/async-generator/params-named-dflt-abrupt.js +++ b/test/language/expressions/async-generator/params-named-dflt-abrupt.js @@ -5,7 +5,7 @@ description: Abrupt completion returned by evaluation of initializer (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] -flags: [generated, async] +flags: [generated] info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-later.js b/test/language/expressions/async-generator/params-named-dflt-ref-later.js index 54919c33d844b0b12b4ec9222bda6dc4ed5d5ef0..2306d9ab0d012d5a1535506a677425aa98208f2d 100644 --- a/test/language/expressions/async-generator/params-named-dflt-ref-later.js +++ b/test/language/expressions/async-generator/params-named-dflt-ref-later.js @@ -5,7 +5,7 @@ description: Referencing a parameter that occurs later in the ParameterList (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] -flags: [generated, async] +flags: [generated] info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-self.js b/test/language/expressions/async-generator/params-named-dflt-ref-self.js index 481030f7e4b3de398b9140f06580a9f39b27f8b9..0696d5de01379fb8815b7f0937ad30ba733a4717 100644 --- a/test/language/expressions/async-generator/params-named-dflt-ref-self.js +++ b/test/language/expressions/async-generator/params-named-dflt-ref-self.js @@ -5,7 +5,7 @@ description: Referencing a parameter from within its own initializer (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] -flags: [generated, async] +flags: [generated] info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } diff --git a/test/language/expressions/async-generator/yield-star-async-next.js b/test/language/expressions/async-generator/yield-star-async-next.js index b9109de63489cd3737bff2ca0484484b804e4e5e..66490aae9dc171c581c84b9926ed2cf6d05b8b4d 100644 --- a/test/language/expressions/async-generator/yield-star-async-next.js +++ b/test/language/expressions/async-generator/yield-star-async-next.js @@ -179,45 +179,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/yield-star-async-return.js b/test/language/expressions/async-generator/yield-star-async-return.js index 44ba2b275bb42ef89938a15f423e09bc65b5200f..c30ad777705198292f396f9c68778535c74525fe 100644 --- a/test/language/expressions/async-generator/yield-star-async-return.js +++ b/test/language/expressions/async-generator/yield-star-async-return.js @@ -23,25 +23,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -199,42 +194,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/async-generator/yield-star-async-throw.js b/test/language/expressions/async-generator/yield-star-async-throw.js index c18f7bbef03ead307c310cf90753e4d8811d83fc..0f28369c7d48ee89414e3be375a969a095f7dd78 100644 --- a/test/language/expressions/async-generator/yield-star-async-throw.js +++ b/test/language/expressions/async-generator/yield-star-async-throw.js @@ -23,22 +23,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -201,45 +199,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-static-yield-star-async-next.js b/test/language/expressions/class/async-gen-method-static-yield-star-async-next.js index 57ada56da139eb5e3035fdaf4aaef1735f833a8e..ee99eba47033ff99a35d1aa5f4aeb6d2dbc5e654 100644 --- a/test/language/expressions/class/async-gen-method-static-yield-star-async-next.js +++ b/test/language/expressions/class/async-gen-method-static-yield-star-async-next.js @@ -186,45 +186,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-static-yield-star-async-return.js b/test/language/expressions/class/async-gen-method-static-yield-star-async-return.js index 2570ccc187404710d1f95602f9148cff298776b4..3cf99ce33702e7ab5a56b9641aed442c536d144d 100644 --- a/test/language/expressions/class/async-gen-method-static-yield-star-async-return.js +++ b/test/language/expressions/class/async-gen-method-static-yield-star-async-return.js @@ -28,25 +28,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -206,42 +201,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-static-yield-star-async-throw.js b/test/language/expressions/class/async-gen-method-static-yield-star-async-throw.js index 2d068919e66288ebd5a4ef4681268adaa2719710..a61d9dbe99ccc2589d14e7cc9f9c597315361aa0 100644 --- a/test/language/expressions/class/async-gen-method-static-yield-star-async-throw.js +++ b/test/language/expressions/class/async-gen-method-static-yield-star-async-throw.js @@ -28,22 +28,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -208,45 +206,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-yield-star-async-next.js b/test/language/expressions/class/async-gen-method-yield-star-async-next.js index 33306ad1146dd0148b2f45365e9f58c840a74267..58c027c35d9c01b67d817671e4b2556b77e85257 100644 --- a/test/language/expressions/class/async-gen-method-yield-star-async-next.js +++ b/test/language/expressions/class/async-gen-method-yield-star-async-next.js @@ -186,45 +186,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-yield-star-async-return.js b/test/language/expressions/class/async-gen-method-yield-star-async-return.js index d4fae2bd8eff33fdcc216451e93f23700d005ef3..2b6f87f409336b2fa35b868e7b892d21f61bba33 100644 --- a/test/language/expressions/class/async-gen-method-yield-star-async-return.js +++ b/test/language/expressions/class/async-gen-method-yield-star-async-return.js @@ -28,25 +28,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -206,42 +201,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/class/async-gen-method-yield-star-async-throw.js b/test/language/expressions/class/async-gen-method-yield-star-async-throw.js index 460fd7004cb6d990036f21b31e7c085d3dd732f6..fa554577fac1ff00f81f7e497b22283d97ad7913 100644 --- a/test/language/expressions/class/async-gen-method-yield-star-async-throw.js +++ b/test/language/expressions/class/async-gen-method-yield-star-async-throw.js @@ -28,22 +28,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -208,45 +206,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-yield-star-async-next.js b/test/language/expressions/object/method-definition/async-gen-yield-star-async-next.js index dad1843b82773db7834d800ea2dbc7e450cc9d5a..99d8a550161fd9fd6ba3bd2b36463db72f389f89 100644 --- a/test/language/expressions/object/method-definition/async-gen-yield-star-async-next.js +++ b/test/language/expressions/object/method-definition/async-gen-yield-star-async-next.js @@ -179,45 +179,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-yield-star-async-return.js b/test/language/expressions/object/method-definition/async-gen-yield-star-async-return.js index 512ab43c7e979ca2e6a80462832f5eb47181dfcb..cfcdd57e25e0d5e8a7a46939926b71e7593403e8 100644 --- a/test/language/expressions/object/method-definition/async-gen-yield-star-async-return.js +++ b/test/language/expressions/object/method-definition/async-gen-yield-star-async-return.js @@ -22,25 +22,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -199,42 +194,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-yield-star-async-throw.js b/test/language/expressions/object/method-definition/async-gen-yield-star-async-throw.js index 448934cd3028835da917aeee0bb7ce8b7c4bb510..31e0305268af3bee29bcaaae9eebe32464cc76bd 100644 --- a/test/language/expressions/object/method-definition/async-gen-yield-star-async-throw.js +++ b/test/language/expressions/object/method-definition/async-gen-yield-star-async-throw.js @@ -22,22 +22,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -201,45 +199,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/module-code/namespace/internals/delete-non-exported.js b/test/language/module-code/namespace/internals/delete-non-exported.js index 9014c7298ea606332f6b3dd63684b1a21b459504..295caa3e7bfde7bb9373299b80ab2a2cd8feaedc 100644 --- a/test/language/module-code/namespace/internals/delete-non-exported.js +++ b/test/language/module-code/namespace/internals/delete-non-exported.js @@ -6,9 +6,11 @@ description: > [[Delete]] behavior for a key that does not describe an exported binding info: | [...] - 2. Let exports be the value of O's [[Exports]] internal slot. - 3. If P is an element of exports, return false. - 4. Return true. + 2. If Type(P) is Symbol, then + a. Return ? OrdinaryDelete(O, P). + 3. Let exports be O.[[Exports]]. + 4. If P is an element of exports, return false. + 5. Return true. flags: [module] features: [Reflect, Symbol, Symbol.toStringTag] ---*/ @@ -24,9 +26,9 @@ assert( Reflect.deleteProperty(ns, 'default'), 'Reflect.deleteProperty: default' ); -assert(delete ns[Symbol.toStringTag], 'delete: Symbol.toStringTag'); -assert( - Reflect.deleteProperty(ns, Symbol.toStringTag), +assert.throws(TypeError, function() { delete ns[Symbol.toStringTag]; }, 'delete: Symbol.toStringTag'); +assert.sameValue( + Reflect.deleteProperty(ns, Symbol.toStringTag), false, 'Reflect.deleteProperty: Symbol.toStringTag' ); diff --git a/test/language/statements/async-generator/yield-star-async-next.js b/test/language/statements/async-generator/yield-star-async-next.js index 87845a14f1dc46d66fc7635f6f29071141c17c9d..bd1b879a9f81a3f5204ae95580e3dcae7b7f6346 100644 --- a/test/language/statements/async-generator/yield-star-async-next.js +++ b/test/language/statements/async-generator/yield-star-async-next.js @@ -179,45 +179,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/statements/async-generator/yield-star-async-return.js b/test/language/statements/async-generator/yield-star-async-return.js index 6b6883d4531918150c28ec81f24f4f3fdb3dac3a..a84c37d0efa954a5a7f99c30f3edf628a9af5b70 100644 --- a/test/language/statements/async-generator/yield-star-async-return.js +++ b/test/language/statements/async-generator/yield-star-async-return.js @@ -23,25 +23,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -199,42 +194,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/statements/async-generator/yield-star-async-throw.js b/test/language/statements/async-generator/yield-star-async-throw.js index 4c0c64e21af0153b5ee64c39249f14a934d8dda7..69bdd02551203409ca67ce3bdeeb070697196912 100644 --- a/test/language/statements/async-generator/yield-star-async-throw.js +++ b/test/language/statements/async-generator/yield-star-async-throw.js @@ -23,22 +23,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -201,45 +199,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-static-yield-star-async-next.js b/test/language/statements/class/async-gen-method-static-yield-star-async-next.js index 1dfe8e25d74ec4efe4143059a84111a1c8fa5f65..3660090579c7aaedd24cd80de2033a2d7f110858 100644 --- a/test/language/statements/class/async-gen-method-static-yield-star-async-next.js +++ b/test/language/statements/class/async-gen-method-static-yield-star-async-next.js @@ -186,45 +186,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-static-yield-star-async-return.js b/test/language/statements/class/async-gen-method-static-yield-star-async-return.js index dc4b7c90db948e560e57d6791478502164000087..acea008434c97832562b3f9cdee866fc2ab86486 100644 --- a/test/language/statements/class/async-gen-method-static-yield-star-async-return.js +++ b/test/language/statements/class/async-gen-method-static-yield-star-async-return.js @@ -28,25 +28,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -206,42 +201,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-static-yield-star-async-throw.js b/test/language/statements/class/async-gen-method-static-yield-star-async-throw.js index 905106e9affac8f067c576a284037708814eaa66..d166d73f0a46d56cd210277721ac0f55443eea17 100644 --- a/test/language/statements/class/async-gen-method-static-yield-star-async-throw.js +++ b/test/language/statements/class/async-gen-method-static-yield-star-async-throw.js @@ -28,22 +28,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -208,45 +206,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-yield-star-async-next.js b/test/language/statements/class/async-gen-method-yield-star-async-next.js index 7a43370f6c3afa6f2fa416bc4c7d05c1163b956b..c4d2f248d9d6ce2e3978eeb324770f659d04310b 100644 --- a/test/language/statements/class/async-gen-method-yield-star-async-next.js +++ b/test/language/statements/class/async-gen-method-yield-star-async-next.js @@ -186,45 +186,42 @@ iter.next("next-arg-1").then(v => { assert.sameValue(log[8].name, "get next value (1)"); assert.sameValue(log[8].thisValue.name, "next-result-1", "get next value thisValue"); - assert.sameValue(log[9].name, "get next done (1)"); - assert.sameValue(log[9].thisValue.name, "next-result-1", "get next done thisValue"); - assert.sameValue(v.value, "next-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 10, "log.length"); + assert.sameValue(log.length, 9, "log.length"); iter.next("next-arg-2").then(v => { - assert.sameValue(log[10].name, "get next"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "get next thisValue"); + assert.sameValue(log[9].name, "get next"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "get next thisValue"); - assert.sameValue(log[11].name, "call next"); - assert.sameValue(log[11].thisValue.name, "asyncIterator", "next thisValue"); - assert.sameValue(log[11].args.length, 1, "next args.length"); - assert.sameValue(log[11].args[0], "next-arg-2", "next args[0]"); + assert.sameValue(log[10].name, "call next"); + assert.sameValue(log[10].thisValue.name, "asyncIterator", "next thisValue"); + assert.sameValue(log[10].args.length, 1, "next args.length"); + assert.sameValue(log[10].args[0], "next-arg-2", "next args[0]"); - assert.sameValue(log[12].name, "get next then (2)"); - assert.sameValue(log[12].thisValue.name, "next-promise-2", "get next then thisValue"); + assert.sameValue(log[11].name, "get next then (2)"); + assert.sameValue(log[11].thisValue.name, "next-promise-2", "get next then thisValue"); - assert.sameValue(log[13].name, "call next then (2)"); - assert.sameValue(log[13].thisValue.name, "next-promise-2", "next then thisValue"); - assert.sameValue(log[13].args.length, 2, "next then args.length"); - assert.sameValue(typeof log[13].args[0], "function", "next then args[0]"); - assert.sameValue(typeof log[13].args[1], "function", "next then args[1]"); + assert.sameValue(log[12].name, "call next then (2)"); + assert.sameValue(log[12].thisValue.name, "next-promise-2", "next then thisValue"); + assert.sameValue(log[12].args.length, 2, "next then args.length"); + assert.sameValue(typeof log[12].args[0], "function", "next then args[0]"); + assert.sameValue(typeof log[12].args[1], "function", "next then args[1]"); - assert.sameValue(log[14].name, "get next done (2)"); - assert.sameValue(log[14].thisValue.name, "next-result-2", "get next done thisValue"); + assert.sameValue(log[13].name, "get next done (2)"); + assert.sameValue(log[13].thisValue.name, "next-result-2", "get next done thisValue"); - assert.sameValue(log[15].name, "get next value (2)"); - assert.sameValue(log[15].thisValue.name, "next-result-2", "get next value thisValue"); + assert.sameValue(log[14].name, "get next value (2)"); + assert.sameValue(log[14].thisValue.name, "next-result-2", "get next value thisValue"); - assert.sameValue(log[16].name, "after yield*"); - assert.sameValue(log[16].value, "next-value-2"); + assert.sameValue(log[15].name, "after yield*"); + assert.sameValue(log[15].value, "next-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 17, "log.length"); + assert.sameValue(log.length, 16, "log.length"); }).then($DONE, $DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-yield-star-async-return.js b/test/language/statements/class/async-gen-method-yield-star-async-return.js index 7a373dd230b65c5f8b9107878ebc0df8055c9efd..cd2066d225018207498d553a5e7993ed2d8927b4 100644 --- a/test/language/statements/class/async-gen-method-yield-star-async-return.js +++ b/test/language/statements/class/async-gen-method-yield-star-async-return.js @@ -28,25 +28,20 @@ info: | i. Assert: received.[[Type]] is return. ii. Let return be ? GetMethod(iterator, "return"). iii. If return is undefined, return Completion(received). - iv. Let innerReturnResult be ? Call(return, iterator, - « received.[[Value]] »). - v. If generatorKind is async, then set innerReturnResult to - ? Await(innerReturnResult). + iv. Let innerReturnResult be ? Call(return, iterator, « received.[[Value]] »). + v. If generatorKind is async, then set innerReturnResult to ? Await(innerReturnResult). ... vii. Let done be ? IteratorComplete(innerReturnResult). viii. If done is true, then 1. Let value be ? IteratorValue(innerReturnResult). - 2. Return Completion{[[Type]]: return, [[Value]]: value, - [[Target]]: empty}. - ix. Let received be GeneratorYield(innerResult). - - GeneratorYield ( iterNextObj ) + 2. If generatorKind is async, then set value to ? Await(value). + 3. Return Completion{[[Type]]: return, [[Value]]: value, [[Target]]: empty}. + ix. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). + ... + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -206,42 +201,39 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get return value (1)"); assert.sameValue(log[7].thisValue.name, "return-result-1", "get return value thisValue"); - assert.sameValue(log[8].name, "get return done (1)"); - assert.sameValue(log[8].thisValue.name, "return-result-1", "get return done thisValue"); - assert.sameValue(v.value, "return-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.return("return-arg-2").then(v => { - assert.sameValue(log[9].name, "get return"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get return thisValue"); + assert.sameValue(log[8].name, "get return"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get return thisValue"); - assert.sameValue(log[10].name, "call return"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "return thisValue"); - assert.sameValue(log[10].args.length, 1, "return args.length"); - assert.sameValue(log[10].args[0], "return-arg-2", "return args[0]"); + assert.sameValue(log[9].name, "call return"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "return thisValue"); + assert.sameValue(log[9].args.length, 1, "return args.length"); + assert.sameValue(log[9].args[0], "return-arg-2", "return args[0]"); - assert.sameValue(log[11].name, "get return then (2)"); - assert.sameValue(log[11].thisValue.name, "return-promise-2", "get return then thisValue"); + assert.sameValue(log[10].name, "get return then (2)"); + assert.sameValue(log[10].thisValue.name, "return-promise-2", "get return then thisValue"); - assert.sameValue(log[12].name, "call return then (2)"); - assert.sameValue(log[12].thisValue.name, "return-promise-2", "return then thisValue"); - assert.sameValue(log[12].args.length, 2, "return then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "return then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "return then args[1]"); + assert.sameValue(log[11].name, "call return then (2)"); + assert.sameValue(log[11].thisValue.name, "return-promise-2", "return then thisValue"); + assert.sameValue(log[11].args.length, 2, "return then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "return then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "return then args[1]"); - assert.sameValue(log[13].name, "get return done (2)"); - assert.sameValue(log[13].thisValue.name, "return-result-2", "get return done thisValue"); + assert.sameValue(log[12].name, "get return done (2)"); + assert.sameValue(log[12].thisValue.name, "return-result-2", "get return done thisValue"); - assert.sameValue(log[14].name, "get return value (2)"); - assert.sameValue(log[14].thisValue.name, "return-result-2", "get return value thisValue"); + assert.sameValue(log[13].name, "get return value (2)"); + assert.sameValue(log[13].thisValue.name, "return-result-2", "get return value thisValue"); assert.sameValue(v.value, "return-value-2"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 15, "log.length"); + assert.sameValue(log.length, 14, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE); diff --git a/test/language/statements/class/async-gen-method-yield-star-async-throw.js b/test/language/statements/class/async-gen-method-yield-star-async-throw.js index ffa3a5216ecf89712278c191fb340ebf4f8fdeb3..767d63512581db514fb7dab2ea8037d4e142b91a 100644 --- a/test/language/statements/class/async-gen-method-yield-star-async-throw.js +++ b/test/language/statements/class/async-gen-method-yield-star-async-throw.js @@ -28,22 +28,20 @@ info: | i. Let throw be ? GetMethod(iterator, "throw"). ii. If throw is not undefined, then 1. Let innerResult be ? Call(throw, iterator, « received.[[Value]] »). - 2. If generatorKind is async, then set innerResult to - ? Await(innerResult). + 2. If generatorKind is async, then set innerResult to ? Await(innerResult). ... 5. Let done be ? IteratorComplete(innerResult). 6. If done is true, then - a. Return ? IteratorValue(innerResult). - 7. Let received be GeneratorYield(innerResult). + a. Let resultValue be Return ? IteratorValue(innerResult). + b. If generatorKind is async, then set resultValue to ? Await(resultValue). + c. Return resultValue. + 7. If generatorKind is async, then let received be AsyncGeneratorYield(? IteratorValue(innerResult)). ... - GeneratorYield ( iterNextObj ) + AsyncGeneratorYield ( value ) ... - 10. If generatorKind is async, - a. Let value be IteratorValue(iterNextObj). - b. Let done be IteratorComplete(iterNextObj). - c. Return ! AsyncGeneratorResolve(generator, value, done). + 8. Return ! AsyncGeneratorResolve(generator, value, false). ... ---*/ @@ -208,45 +206,42 @@ iter.next().then(v => { assert.sameValue(log[7].name, "get throw value (1)"); assert.sameValue(log[7].thisValue.name, "throw-result-1", "get throw value thisValue"); - assert.sameValue(log[8].name, "get throw done (1)"); - assert.sameValue(log[8].thisValue.name, "throw-result-1", "get throw done thisValue"); - assert.sameValue(v.value, "throw-value-1"); assert.sameValue(v.done, false); - assert.sameValue(log.length, 9, "log.length"); + assert.sameValue(log.length, 8, "log.length"); iter.throw("throw-arg-2").then(v => { - assert.sameValue(log[9].name, "get throw"); - assert.sameValue(log[9].thisValue.name, "asyncIterator", "get throw thisValue"); + assert.sameValue(log[8].name, "get throw"); + assert.sameValue(log[8].thisValue.name, "asyncIterator", "get throw thisValue"); - assert.sameValue(log[10].name, "call throw"); - assert.sameValue(log[10].thisValue.name, "asyncIterator", "throw thisValue"); - assert.sameValue(log[10].args.length, 1, "throw args.length"); - assert.sameValue(log[10].args[0], "throw-arg-2", "throw args[0]"); + assert.sameValue(log[9].name, "call throw"); + assert.sameValue(log[9].thisValue.name, "asyncIterator", "throw thisValue"); + assert.sameValue(log[9].args.length, 1, "throw args.length"); + assert.sameValue(log[9].args[0], "throw-arg-2", "throw args[0]"); - assert.sameValue(log[11].name, "get throw then (2)"); - assert.sameValue(log[11].thisValue.name, "throw-promise-2", "get throw thisValue"); + assert.sameValue(log[10].name, "get throw then (2)"); + assert.sameValue(log[10].thisValue.name, "throw-promise-2", "get throw thisValue"); - assert.sameValue(log[12].name, "call throw then (2)"); - assert.sameValue(log[12].thisValue.name, "throw-promise-2", "throw thisValue"); - assert.sameValue(log[12].args.length, 2, "throw then args.length"); - assert.sameValue(typeof log[12].args[0], "function", "throw then args[0]"); - assert.sameValue(typeof log[12].args[1], "function", "throw then args[1]"); + assert.sameValue(log[11].name, "call throw then (2)"); + assert.sameValue(log[11].thisValue.name, "throw-promise-2", "throw thisValue"); + assert.sameValue(log[11].args.length, 2, "throw then args.length"); + assert.sameValue(typeof log[11].args[0], "function", "throw then args[0]"); + assert.sameValue(typeof log[11].args[1], "function", "throw then args[1]"); - assert.sameValue(log[13].name, "get throw done (2)"); - assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw done thisValue"); + assert.sameValue(log[12].name, "get throw done (2)"); + assert.sameValue(log[12].thisValue.name, "throw-result-2", "get throw done thisValue"); - assert.sameValue(log[14].name, "get throw value (2)"); - assert.sameValue(log[14].thisValue.name, "throw-result-2", "get throw value thisValue"); + assert.sameValue(log[13].name, "get throw value (2)"); + assert.sameValue(log[13].thisValue.name, "throw-result-2", "get throw value thisValue"); - assert.sameValue(log[15].name, "after yield*"); - assert.sameValue(log[15].value, "throw-value-2"); + assert.sameValue(log[14].name, "after yield*"); + assert.sameValue(log[14].value, "throw-value-2"); assert.sameValue(v.value, "return-value"); assert.sameValue(v.done, true); - assert.sameValue(log.length, 16, "log.length"); + assert.sameValue(log.length, 15, "log.length"); }).then($DONE, $DONE); }).catch($DONE); }).catch($DONE);