Backed out changeset e49d0dfcaa5c (bug 1165052)

This commit is contained in:
Tooru Fujisawa 2016-03-28 06:49:56 +09:00
Родитель d4c12c56c8
Коммит 92106bd9fd
1 изменённых файлов: 14 добавлений и 14 удалений

Просмотреть файл

@ -309,42 +309,42 @@ function ArrayStaticMap(list, callbackfn/*, thisArg*/) {
return callFunction(ArrayMap, list, callbackfn, T); return callFunction(ArrayMap, list, callbackfn, T);
} }
/* ES 2016 draft Mar 25, 2016 22.1.3.7 Array.prototype.filter. */ /* ES2015 22.1.3.7 Array.prototype.filter. */
function ArrayFilter(callbackfn/*, thisArg*/) { function ArrayFilter(callbackfn/*, thisArg*/) {
/* Step 1. */ /* Steps 1-2. */
var O = ToObject(this); var O = ToObject(this);
/* Step 2. */ /* Steps 3-4. */
var len = ToInteger(O.length); var len = ToInteger(O.length);
/* Step 3. */ /* Step 5. */
if (arguments.length === 0) if (arguments.length === 0)
ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'Array.prototype.filter'); ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'Array.prototype.filter');
if (!IsCallable(callbackfn)) if (!IsCallable(callbackfn))
ThrowTypeError(JSMSG_NOT_FUNCTION, DecompileArg(0, callbackfn)); ThrowTypeError(JSMSG_NOT_FUNCTION, DecompileArg(0, callbackfn));
/* Step 4. */ /* Step 6. */
var T = arguments.length > 1 ? arguments[1] : void 0; var T = arguments.length > 1 ? arguments[1] : void 0;
/* Step 5. */ /* Step 7. */
var A = ArraySpeciesCreate(O, 0); var A = [];
/* Steps 6-8. */ /* Steps 8-11. */
/* Steps 8.a (implicit), and 8.d. */ /* Steps 11.a (implicit), and 11.e. */
for (var k = 0, to = 0; k < len; k++) { for (var k = 0, to = 0; k < len; k++) {
/* Steps 8.b-c. */ /* Steps 11.b-c. */
if (k in O) { if (k in O) {
/* Step 8.c.i. */ /* Steps 11.c.i-ii. */
var kValue = O[k]; var kValue = O[k];
/* Step 8.c.ii. */ /* Steps 11.c.iii-iv. */
var selected = callContentFunction(callbackfn, T, kValue, k, O); var selected = callContentFunction(callbackfn, T, kValue, k, O);
/* Step 8.c.iii. */ /* Step 11.c.v. */
if (selected) if (selected)
_DefineDataProperty(A, to++, kValue); _DefineDataProperty(A, to++, kValue);
} }
} }
/* Step 9. */ /* Step 12. */
return A; return A;
} }