MCPcopy Create free account
hub / github.com/nodejs/node / testReturnCalled

Function testReturnCalled

deps/v8/test/mjsunit/iterable-foreach.js:42–65  ·  view source on GitHub ↗
(iterableFactory)

Source from the content-addressed store, hash-verified

40
41// Exception handling and 'return' method
42function testReturnCalled(iterableFactory) {
43 let returnCalled = false;
44 let iterable = iterableFactory();
45 let iterator = iterable[Symbol.iterator]();
46 let originalIterator = iterator;
47
48 // Wrap the iterator to intercept 'return'
49 iterable[Symbol.iterator] = () => {
50 originalIterator.return = () => {
51 returnCalled = true;
52 return { done: true };
53 };
54 return originalIterator;
55 }
56
57 try {
58 %IterableForEach(iterable, (x) => {
59 throw new Error("Stop iteration");
60 });
61 } catch (e) {
62 assertEquals("Stop iteration", e.message);
63 }
64 assertTrue(returnCalled, "Iterator.return() should be called");
65}
66
67// Test with custom iterable
68testReturnCalled(() => ({

Callers 1

Calls 2

assertTrueFunction · 0.70
assertEqualsFunction · 0.50

Tested by

no test coverage detected