Bug 983053 - Don't suppress-deleted-elements on an object that's not in the middle of iteration. r=jorendorff
authorJeff Walden <jwalden@mit.edu>
Tue, 25 Mar 2014 10:29:59 -0400
changeset 196909 cdf86d4ca60b671b8f00a707b7b90674d8a0e8ce
parent 196908 a79661f16f410b77ac53caba023091b20bca1741
child 196910 da17b1da2a39eff11efd9f1b0e85fcea60532438
push id3624
push userasasaki@mozilla.com
push dateMon, 09 Jun 2014 21:49:01 +0000
treeherdermozilla-beta@b1a5da15899a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjorendorff
bugs983053
milestone31.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 983053 - Don't suppress-deleted-elements on an object that's not in the middle of iteration. r=jorendorff
js/src/jsarray.cpp
--- a/js/src/jsarray.cpp
+++ b/js/src/jsarray.cpp
@@ -2439,20 +2439,16 @@ array_splice(JSContext *cx, unsigned arg
             /*
              * Update the initialized length. Do so before shrinking so that we
              * can apply the write barrier to the old slots.
              */
             obj->setDenseInitializedLength(finalLength);
 
             /* Steps 12(c)-(d). */
             obj->shrinkElements(cx, finalLength);
-
-            /* Fix running enumerators for the deleted items. */
-            if (!js_SuppressDeletedElements(cx, obj, finalLength, len))
-                return false;
         } else {
             /*
              * This is all very slow if the length is very large. We don't yet
              * have the ability to iterate in sorted order, so we just do the
              * pessimistic thing and let CheckForInterrupt handle the
              * fallout.
              */