Title: [134081] trunk/Source/_javascript_Core
Revision
134081
Author
fpi...@apple.com
Date
2012-11-09 10:04:01 -0800 (Fri, 09 Nov 2012)

Log Message

ArrayPrototype should start out with a blank indexing type
https://bugs.webkit.org/show_bug.cgi?id=101719

Reviewed by Mark Hahnenberg.

This allows us to track if the array prototype ever ends up with indexed
properties.

* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::create):
(JSC::ArrayPrototype::ArrayPrototype):
* runtime/ArrayPrototype.h:
(ArrayPrototype):
(JSC::ArrayPrototype::createStructure):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (134080 => 134081)


--- trunk/Source/_javascript_Core/ChangeLog	2012-11-09 17:58:19 UTC (rev 134080)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-11-09 18:04:01 UTC (rev 134081)
@@ -1,3 +1,20 @@
+2012-11-09  Filip Pizlo  <fpi...@apple.com>
+
+        ArrayPrototype should start out with a blank indexing type
+        https://bugs.webkit.org/show_bug.cgi?id=101719
+
+        Reviewed by Mark Hahnenberg.
+
+        This allows us to track if the array prototype ever ends up with indexed
+        properties.
+
+        * runtime/ArrayPrototype.cpp:
+        (JSC::ArrayPrototype::create):
+        (JSC::ArrayPrototype::ArrayPrototype):
+        * runtime/ArrayPrototype.h:
+        (ArrayPrototype):
+        (JSC::ArrayPrototype::createStructure):
+
 2012-11-08  Mark Hahnenberg  <mhahnenb...@apple.com>
 
         MarkStackArray should use the BlockAllocator instead of the MarkStackSegmentAllocator

Modified: trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp (134080 => 134081)


--- trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp	2012-11-09 17:58:19 UTC (rev 134080)
+++ trunk/Source/_javascript_Core/runtime/ArrayPrototype.cpp	2012-11-09 18:04:01 UTC (rev 134081)
@@ -116,15 +116,14 @@
 
 ArrayPrototype* ArrayPrototype::create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
 {
-    Butterfly* butterfly = createArrayButterfly(exec->globalData(), 0);
-    ArrayPrototype* prototype = new (NotNull, allocateCell<ArrayPrototype>(*exec->heap())) ArrayPrototype(globalObject, structure, butterfly);
+    ArrayPrototype* prototype = new (NotNull, allocateCell<ArrayPrototype>(*exec->heap())) ArrayPrototype(globalObject, structure);
     prototype->finishCreation(globalObject);
     return prototype;
 }
 
 // ECMA 15.4.4
-ArrayPrototype::ArrayPrototype(JSGlobalObject* globalObject, Structure* structure, Butterfly* butterfly)
-    : JSArray(globalObject->globalData(), structure, butterfly)
+ArrayPrototype::ArrayPrototype(JSGlobalObject* globalObject, Structure* structure)
+    : JSArray(globalObject->globalData(), structure, 0)
 {
 }
 

Modified: trunk/Source/_javascript_Core/runtime/ArrayPrototype.h (134080 => 134081)


--- trunk/Source/_javascript_Core/runtime/ArrayPrototype.h	2012-11-09 17:58:19 UTC (rev 134080)
+++ trunk/Source/_javascript_Core/runtime/ArrayPrototype.h	2012-11-09 18:04:01 UTC (rev 134081)
@@ -28,7 +28,7 @@
 
 class ArrayPrototype : public JSArray {
 private:
-    ArrayPrototype(JSGlobalObject*, Structure*, Butterfly*);
+    ArrayPrototype(JSGlobalObject*, Structure*);
 
 public:
     typedef JSArray Base;
@@ -42,7 +42,7 @@
 
     static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype)
     {
-        return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info, ArrayWithArrayStorage);
+        return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info, ArrayClass);
     }
 
 protected:
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to