Skip to content

Commit ec3e255

Browse files
committed
[patch] change Symbol.iterator fallback from callable check to nullish check
See tc39/proposal-iterator-helpers#272
1 parent 9fa13a0 commit ec3e255

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

aos/GetIteratorFlattenable.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ var $TypeError = GetIntrinsic('%TypeError%');
77
var AdvanceStringIndex = require('es-abstract/2022/AdvanceStringIndex');
88
var Call = require('es-abstract/2022/Call');
99
var GetIteratorDirect = require('./GetIteratorDirect');
10-
var GetV = require('es-abstract/2022/GetV');
10+
var GetMethod = require('es-abstract/2022/GetMethod');
1111
var IsArray = require('es-abstract/2022/IsArray');
12-
var IsCallable = require('es-abstract/2022/IsCallable');
1312
var Type = require('es-abstract/2022/Type');
1413

1514
var getIteratorMethod = require('es-abstract/helpers/getIteratorMethod');
@@ -21,18 +20,18 @@ module.exports = function GetIteratorFlattenable(obj) {
2120

2221
var method = void undefined; // step 2
2322

24-
// method = Get(obj, Symbol.iterator); // step 5.a
23+
// method = GetMethod(obj, Symbol.iterator); // step 5.a
2524
method = getIteratorMethod(
2625
{
2726
AdvanceStringIndex: AdvanceStringIndex,
28-
GetMethod: GetV,
27+
GetMethod: GetMethod,
2928
IsArray: IsArray
3029
},
3130
obj
3231
);
3332

3433
var iterator;
35-
if (!IsCallable(method)) { // step 3
34+
if (typeof method === 'undefined') { // step 3
3635
iterator = obj; // step 3.a
3736
} else { // step 4
3837
iterator = Call(method, obj); // step 4.a

test/Iterator.prototype.flatMap.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ module.exports = {
116116
return n.next();
117117
}
118118
};
119-
ret[Symbol.iterator] = 0;
119+
ret[Symbol.iterator] = null;
120120
return ret;
121121
}), [0, 1, 2], st, 'test262: test/built-ins/Iterator/prototype/flatMap/iterable-to-iterator-fallback');
122122

0 commit comments

Comments
 (0)