Title: [214522] branches/safari-603-branch/Source/_javascript_Core
Revision
214522
Author
jmarc...@apple.com
Date
2017-03-28 20:28:28 -0700 (Tue, 28 Mar 2017)

Log Message

Merge r214374. rdar://problem/31249971

Modified Paths

Diff

Modified: branches/safari-603-branch/Source/_javascript_Core/ChangeLog (214521 => 214522)


--- branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-03-29 03:28:26 UTC (rev 214521)
+++ branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-03-29 03:28:28 UTC (rev 214522)
@@ -1,5 +1,22 @@
 2017-03-28  Jason Marcell  <jmarc...@apple.com>
 
+        Merge r214374. rdar://problem/31249971
+
+    2017-03-24  Mark Lam  <mark....@apple.com>
+
+            Array memcpy'ing fast paths should check if we're having a bad time if they cannot handle it.
+            https://bugs.webkit.org/show_bug.cgi?id=170064
+            <rdar://problem/31246098>
+
+            Reviewed by Geoffrey Garen.
+
+            * runtime/ArrayPrototype.cpp:
+            (JSC::arrayProtoPrivateFuncConcatMemcpy):
+            * runtime/JSArray.cpp:
+            (JSC::JSArray::fastSlice):
+
+2017-03-28  Jason Marcell  <jmarc...@apple.com>
+
         Merge r212310. rdar://problem/30922106
 
     2017-02-14  Mark Lam  <mark....@apple.com>

Modified: branches/safari-603-branch/Source/_javascript_Core/runtime/ArrayPrototype.cpp (214521 => 214522)


--- branches/safari-603-branch/Source/_javascript_Core/runtime/ArrayPrototype.cpp	2017-03-29 03:28:26 UTC (rev 214521)
+++ branches/safari-603-branch/Source/_javascript_Core/runtime/ArrayPrototype.cpp	2017-03-29 03:28:28 UTC (rev 214522)
@@ -1303,7 +1303,12 @@
         return JSValue::encode(result);
     }
 
-    Structure* resultStructure = exec->lexicalGlobalObject()->arrayStructureForIndexingTypeDuringAllocation(type);
+    JSGlobalObject* lexicalGlobalObject = exec->lexicalGlobalObject();
+    Structure* resultStructure = lexicalGlobalObject->arrayStructureForIndexingTypeDuringAllocation(type);
+    if (UNLIKELY(hasAnyArrayStorage(resultStructure->indexingType())))
+        return JSValue::encode(jsNull());
+
+    ASSERT(!lexicalGlobalObject->isHavingABadTime());
     JSArray* result = JSArray::tryCreateUninitialized(vm, resultStructure, resultSize);
     if (UNLIKELY(!result)) {
         throwOutOfMemoryError(exec, scope);

Modified: branches/safari-603-branch/Source/_javascript_Core/runtime/JSArray.cpp (214521 => 214522)


--- branches/safari-603-branch/Source/_javascript_Core/runtime/JSArray.cpp	2017-03-29 03:28:26 UTC (rev 214521)
+++ branches/safari-603-branch/Source/_javascript_Core/runtime/JSArray.cpp	2017-03-29 03:28:28 UTC (rev 214522)
@@ -855,7 +855,12 @@
         if (count >= MIN_SPARSE_ARRAY_INDEX || structure(vm)->holesMustForwardToPrototype(vm))
             return nullptr;
 
-        Structure* resultStructure = exec.lexicalGlobalObject()->arrayStructureForIndexingTypeDuringAllocation(arrayType);
+        JSGlobalObject* lexicalGlobalObject = exec.lexicalGlobalObject();
+        Structure* resultStructure = lexicalGlobalObject->arrayStructureForIndexingTypeDuringAllocation(arrayType);
+        if (UNLIKELY(hasAnyArrayStorage(resultStructure->indexingType())))
+            return nullptr;
+
+        ASSERT(!lexicalGlobalObject->isHavingABadTime());
         JSArray* resultArray = JSArray::tryCreateUninitialized(vm, resultStructure, count);
         if (!resultArray)
             return nullptr;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to