Backed out changeset 5d13efb13fec (bug 1165052)
authorTooru Fujisawa <arai_a@mac.com>
Mon, 28 Mar 2016 06:49:56 +0900
changeset 290664 d61e32f1ad9cf2c377317066bb668f7e7bb86e2e
parent 290663 b38df48d4638a80a73e3d4dc6d935f1bef122ff7
child 290665 8e3a42336a3738b82d35e5fb09d9aef347106ba9
push id19656
push usergwagner@mozilla.com
push dateMon, 04 Apr 2016 13:43:23 +0000
treeherderb2g-inbound@e99061fde28a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1165052
milestone48.0a1
backs out5d13efb13fec2a7843d65c27c9862bd5e51c457d
Backed out changeset 5d13efb13fec (bug 1165052)
js/src/builtin/Array.js
--- a/js/src/builtin/Array.js
+++ b/js/src/builtin/Array.js
@@ -260,49 +260,48 @@ function ArrayStaticForEach(list, callba
     if (arguments.length < 2)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'Array.forEach');
     if (!IsCallable(callbackfn))
         ThrowTypeError(JSMSG_NOT_FUNCTION, DecompileArg(1, callbackfn));
     var T = arguments.length > 2 ? arguments[2] : void 0;
     callFunction(ArrayForEach, list, callbackfn, T);
 }
 
-/* ES 2016 draft Mar 25, 2016 22.1.3.15. */
+/* ES5 15.4.4.19. */
 function ArrayMap(callbackfn/*, thisArg*/) {
     /* Step 1. */
     var O = ToObject(this);
 
-    /* Step 2. */
-    /* FIXME: Array operations should use ToLength (bug 924058). */
+    /* Step 2-3. */
     var len = TO_UINT32(O.length);
 
-    /* Step 3. */
+    /* Step 4. */
     if (arguments.length === 0)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'Array.prototype.map');
     if (!IsCallable(callbackfn))
         ThrowTypeError(JSMSG_NOT_FUNCTION, DecompileArg(0, callbackfn));
 
-    /* Step 4. */
+    /* Step 5. */
     var T = arguments.length > 1 ? arguments[1] : void 0;
 
-    /* Steps 5. */
-    var A = ArraySpeciesCreate(O, len);
+    /* Step 6. */
+    var A = std_Array(len);
 
-    /* Steps 6-7. */
-    /* Steps 7.a (implicit), and 7.d. */
+    /* Step 7-8. */
+    /* Step a (implicit), and d. */
     for (var k = 0; k < len; k++) {
-        /* Steps 7.b-c. */
+        /* Step b */
         if (k in O) {
-            /* Steps 7.c.i-iii. */
+            /* Step c.i-iii. */
             var mappedValue = callContentFunction(callbackfn, T, O[k], k, O);
             _DefineDataProperty(A, k, mappedValue);
         }
     }
 
-    /* Step 8. */
+    /* Step 9. */
     return A;
 }
 
 function ArrayStaticMap(list, callbackfn/*, thisArg*/) {
     if (arguments.length < 2)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'Array.map');
     if (!IsCallable(callbackfn))
         ThrowTypeError(JSMSG_NOT_FUNCTION, DecompileArg(1, callbackfn));