зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset e49d0dfcaa5c (bug 1165052)
This commit is contained in:
Родитель
d4c12c56c8
Коммит
92106bd9fd
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче