From bdb051fcdd05aec43b7d9f81cb99239f39918176 Mon Sep 17 00:00:00 2001 From: Michael Ficarra Date: Fri, 20 Jun 2025 11:33:18 +0900 Subject: [PATCH] update Iterator Sequencing tests to reflect May 2025 plenary updates --- .../Iterator/concat/fresh-iterator-result.js | 2 +- .../Iterator/concat/get-value-after-done.js | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test/built-ins/Iterator/concat/get-value-after-done.js diff --git a/test/built-ins/Iterator/concat/fresh-iterator-result.js b/test/built-ins/Iterator/concat/fresh-iterator-result.js index 3477ae95d8..744bdaa356 100644 --- a/test/built-ins/Iterator/concat/fresh-iterator-result.js +++ b/test/built-ins/Iterator/concat/fresh-iterator-result.js @@ -46,4 +46,4 @@ let iterResult = iterator.next(); assert.sameValue(iterResult.done, false); assert.sameValue(iterResult.value, 123); -assert.sameValue(iterResult, oldIterResult); +assert.notSameValue(iterResult, oldIterResult); diff --git a/test/built-ins/Iterator/concat/get-value-after-done.js b/test/built-ins/Iterator/concat/get-value-after-done.js new file mode 100644 index 0000000000..07103846ed --- /dev/null +++ b/test/built-ins/Iterator/concat/get-value-after-done.js @@ -0,0 +1,29 @@ +// Copyright (C) 2025 Michael Ficarra. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-iterator.concat +description: > + Iterator.concat does not access the value of a done IteratorResult, diverging from the behaviour of yield* +features: [iterator-sequencing] +---*/ + +let valueAccesses = 0; +let iter = { + [Symbol.iterator]() { + return { + next() { + return { + get value() { + ++valueAccesses; + }, + done: true, + }; + }, + }; + } +}; + +Array.from(Iterator.concat(iter, iter, iter)); + +assert.sameValue(valueAccesses, 0, 'Iterator.concat does not access value getter after each iterator is done');