Move some JSObject and JSArray inline functions to their respective Inlines.h files.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Sep 2016 22:34:27 +0000 (22:34 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Sep 2016 22:34:27 +0000 (22:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=161499

Reviewed by Saam Barati.

Source/JavaScriptCore:

This is just a refactoring patch to move some inline functions to their Inlines.h
files.  This will be needed to enable https://bugs.webkit.org/show_bug.cgi?id=161498
later.

* bindings/ScriptValue.cpp:
* interpreter/Interpreter.cpp:
* runtime/IntlDateTimeFormatPrototype.cpp:
* runtime/IntlNumberFormatPrototype.cpp:
* runtime/JSArray.cpp:
* runtime/JSArray.h:
(JSC::getLength): Deleted.
(JSC::toLength): Deleted.
* runtime/JSArrayInlines.h:
(JSC::JSArray::mergeIndexingTypeForCopying):
(JSC::JSArray::canFastCopy):
(JSC::getLength):
(JSC::toLength):
* runtime/JSInternalPromise.cpp:
* runtime/JSInternalPromiseDeferred.cpp:
* runtime/JSJob.cpp:
* runtime/JSModuleRecord.cpp:
* runtime/JSObject.h:
(JSC::JSObject::getPropertySlot): Deleted.
(JSC::JSObject::getNonIndexPropertySlot): Deleted.
* runtime/JSObjectInlines.h:
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
* runtime/JSPromiseDeferred.cpp:
* runtime/JSTypedArrayViewPrototype.cpp:
* runtime/MapConstructor.cpp:
* runtime/SamplingProfiler.cpp:
* runtime/SetConstructor.cpp:
* runtime/WeakMapConstructor.cpp:
* runtime/WeakSetConstructor.cpp:

Source/WebCore:

No new tests because there is no behavior change.

* ForwardingHeaders/runtime/JSObjectInlines.h: Added.
* bindings/js/JSDOMBinding.h:
* bindings/js/JSSQLTransactionCustom.cpp:
* bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
* contentextensions/ContentExtensionParser.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205324 268f45cc-cd09-0410-ab3c-d52691b4dbfc

27 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bindings/ScriptValue.cpp
Source/JavaScriptCore/interpreter/Interpreter.cpp
Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp
Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp
Source/JavaScriptCore/runtime/JSArray.cpp
Source/JavaScriptCore/runtime/JSArray.h
Source/JavaScriptCore/runtime/JSArrayInlines.h
Source/JavaScriptCore/runtime/JSInternalPromise.cpp
Source/JavaScriptCore/runtime/JSInternalPromiseDeferred.cpp
Source/JavaScriptCore/runtime/JSJob.cpp
Source/JavaScriptCore/runtime/JSModuleRecord.cpp
Source/JavaScriptCore/runtime/JSObject.h
Source/JavaScriptCore/runtime/JSObjectInlines.h
Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp
Source/JavaScriptCore/runtime/JSTypedArrayViewPrototype.cpp
Source/JavaScriptCore/runtime/MapConstructor.cpp
Source/JavaScriptCore/runtime/SamplingProfiler.cpp
Source/JavaScriptCore/runtime/SetConstructor.cpp
Source/JavaScriptCore/runtime/WeakMapConstructor.cpp
Source/JavaScriptCore/runtime/WeakSetConstructor.cpp
Source/WebCore/ChangeLog
Source/WebCore/ForwardingHeaders/runtime/JSObjectInlines.h [new file with mode: 0644]
Source/WebCore/bindings/js/JSDOMBinding.h
Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp
Source/WebCore/bindings/js/JSWebGLRenderingContextBaseCustom.cpp
Source/WebCore/contentextensions/ContentExtensionParser.cpp

index 0ab44b2..187f289 100644 (file)
@@ -1,3 +1,45 @@
+2016-09-01  Mark Lam  <mark.lam@apple.com>
+
+        Move some JSObject and JSArray inline functions to their respective Inlines.h files.
+        https://bugs.webkit.org/show_bug.cgi?id=161499
+
+        Reviewed by Saam Barati.
+
+        This is just a refactoring patch to move some inline functions to their Inlines.h
+        files.  This will be needed to enable https://bugs.webkit.org/show_bug.cgi?id=161498
+        later.
+
+        * bindings/ScriptValue.cpp:
+        * interpreter/Interpreter.cpp:
+        * runtime/IntlDateTimeFormatPrototype.cpp:
+        * runtime/IntlNumberFormatPrototype.cpp:
+        * runtime/JSArray.cpp:
+        * runtime/JSArray.h:
+        (JSC::getLength): Deleted.
+        (JSC::toLength): Deleted.
+        * runtime/JSArrayInlines.h:
+        (JSC::JSArray::mergeIndexingTypeForCopying):
+        (JSC::JSArray::canFastCopy):
+        (JSC::getLength):
+        (JSC::toLength):
+        * runtime/JSInternalPromise.cpp:
+        * runtime/JSInternalPromiseDeferred.cpp:
+        * runtime/JSJob.cpp:
+        * runtime/JSModuleRecord.cpp:
+        * runtime/JSObject.h:
+        (JSC::JSObject::getPropertySlot): Deleted.
+        (JSC::JSObject::getNonIndexPropertySlot): Deleted.
+        * runtime/JSObjectInlines.h:
+        (JSC::JSObject::getPropertySlot):
+        (JSC::JSObject::getNonIndexPropertySlot):
+        * runtime/JSPromiseDeferred.cpp:
+        * runtime/JSTypedArrayViewPrototype.cpp:
+        * runtime/MapConstructor.cpp:
+        * runtime/SamplingProfiler.cpp:
+        * runtime/SetConstructor.cpp:
+        * runtime/WeakMapConstructor.cpp:
+        * runtime/WeakSetConstructor.cpp:
+
 2016-09-01  JF Bastien  <jfbastien@apple.com>
 
         GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
index 126a468..7da8673 100644 (file)
@@ -33,6 +33,7 @@
 #include "APICast.h"
 #include "InspectorValues.h"
 #include "JSLock.h"
+#include "JSObjectInlines.h"
 #include "StructureInlines.h"
 
 using namespace JSC;
index 9da8af3..4ba7b7b 100644 (file)
@@ -43,7 +43,7 @@
 #include "Exception.h"
 #include "ExceptionHelpers.h"
 #include "GetterSetter.h"
-#include "JSArray.h"
+#include "JSArrayInlines.h"
 #include "JSBoundFunction.h"
 #include "JSCInlines.h"
 #include "JSLexicalEnvironment.h"
index ae3eab9..8ba608d 100644 (file)
@@ -37,7 +37,7 @@
 #include "JSBoundFunction.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
-#include "JSObject.h"
+#include "JSObjectInlines.h"
 #include "StructureInlines.h"
 
 namespace JSC {
index 729def1..6114e9e 100644 (file)
@@ -35,7 +35,7 @@
 #include "JSBoundFunction.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
-#include "JSObject.h"
+#include "JSObjectInlines.h"
 #include "StructureInlines.h"
 
 namespace JSC {
index 48f848a..f6d7350 100644 (file)
@@ -31,6 +31,7 @@
 #include "Executable.h"
 #include "GetterSetter.h"
 #include "IndexingHeaderInlines.h"
+#include "JSArrayInlines.h"
 #include "JSCInlines.h"
 #include "PropertyNameArray.h"
 #include "Reject.h"
index cde9df1..6ee8e65 100644 (file)
@@ -341,30 +341,6 @@ inline JSArray* constructArrayNegativeIndexed(ExecState* exec, Structure* arrayS
     return array;
 }
 
-ALWAYS_INLINE unsigned getLength(ExecState* exec, JSObject* obj)
-{
-    if (isJSArray(obj))
-        return jsCast<JSArray*>(obj)->length();
-
-    VM& vm = exec->vm();
-    JSValue lengthValue = obj->get(exec, vm.propertyNames->length);
-    if (UNLIKELY(vm.exception()))
-        return UINT_MAX;
-    return lengthValue.toUInt32(exec);
-}
-
-ALWAYS_INLINE double toLength(ExecState* exec, JSObject* obj)
-{
-    if (isJSArray(obj))
-        return jsCast<JSArray*>(obj)->length();
-
-    VM& vm = exec->vm();
-    JSValue lengthValue = obj->get(exec, vm.propertyNames->length);
-    if (UNLIKELY(vm.exception()))
-        return PNaN;
-    return lengthValue.toLength(exec);
-}
-
 } // namespace JSC
 
 #endif // JSArray_h
index d7a0925..1ae8d2c 100644 (file)
@@ -26,7 +26,7 @@
 
 namespace JSC {
 
-IndexingType JSArray::mergeIndexingTypeForCopying(IndexingType other)
+inline IndexingType JSArray::mergeIndexingTypeForCopying(IndexingType other)
 {
     IndexingType type = indexingType();
     if (!(type & IsArray && other & IsArray))
@@ -56,7 +56,7 @@ IndexingType JSArray::mergeIndexingTypeForCopying(IndexingType other)
     return type;
 }
 
-bool JSArray::canFastCopy(VM& vm, JSArray* otherArray)
+inline bool JSArray::canFastCopy(VM& vm, JSArray* otherArray)
 {
     if (hasAnyArrayStorage(indexingType()) || hasAnyArrayStorage(otherArray->indexingType()))
         return false;
@@ -68,6 +68,30 @@ bool JSArray::canFastCopy(VM& vm, JSArray* otherArray)
     return true;
 }
 
+ALWAYS_INLINE unsigned getLength(ExecState* exec, JSObject* obj)
+{
+    if (isJSArray(obj))
+        return jsCast<JSArray*>(obj)->length();
+
+    VM& vm = exec->vm();
+    JSValue lengthValue = obj->get(exec, vm.propertyNames->length);
+    if (UNLIKELY(vm.exception()))
+        return UINT_MAX;
+    return lengthValue.toUInt32(exec);
+}
+
+ALWAYS_INLINE double toLength(ExecState* exec, JSObject* obj)
+{
+    if (isJSArray(obj))
+        return jsCast<JSArray*>(obj)->length();
+
+    VM& vm = exec->vm();
+    JSValue lengthValue = obj->get(exec, vm.propertyNames->length);
+    if (UNLIKELY(vm.exception()))
+        return PNaN;
+    return lengthValue.toLength(exec);
+}
+
 } // namespace JSC
 
 #endif /* JSArrayInlines_h */
index aba75aa..f952592 100644 (file)
@@ -29,6 +29,7 @@
 #include "BuiltinNames.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
+#include "JSObjectInlines.h"
 #include "StructureInlines.h"
 
 namespace JSC {
index 8a27d91..ab4a8f4 100644 (file)
@@ -33,6 +33,7 @@
 #include "JSCellInlines.h"
 #include "JSInternalPromise.h"
 #include "JSInternalPromiseConstructor.h"
+#include "JSObjectInlines.h"
 #include "SlotVisitorInlines.h"
 #include "StructureInlines.h"
 
index f1a6ab3..d11ffa3 100644 (file)
@@ -31,6 +31,7 @@
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
+#include "JSObjectInlines.h"
 #include "Microtask.h"
 #include "SlotVisitorInlines.h"
 #include "StrongInlines.h"
index 4371c0f..21bac79 100644 (file)
@@ -34,6 +34,7 @@
 #include "JSMap.h"
 #include "JSModuleEnvironment.h"
 #include "JSModuleNamespaceObject.h"
+#include "JSObjectInlines.h"
 #include "SlotVisitorInlines.h"
 #include "StructureInlines.h"
 
index fca284f..82f4b0f 100644 (file)
@@ -1290,66 +1290,6 @@ ALWAYS_INLINE bool JSObject::getPropertySlot(ExecState* exec, PropertyName prope
     return false;
 }
 
-ALWAYS_INLINE bool JSObject::getPropertySlot(ExecState* exec, unsigned propertyName, PropertySlot& slot)
-{
-    VM& vm = exec->vm();
-    auto& structureIDTable = vm.heap.structureIDTable();
-    JSObject* object = this;
-    MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
-    while (true) {
-        Structure& structure = *structureIDTable.get(object->structureID());
-        if (structure.classInfo()->methodTable.getOwnPropertySlotByIndex(object, exec, propertyName, slot))
-            return true;
-        if (UNLIKELY(vm.exception()))
-            return false;
-        JSValue prototype;
-        if (LIKELY(structure.classInfo()->methodTable.getPrototype == defaultGetPrototype || slot.internalMethodType() == PropertySlot::InternalMethodType::VMInquiry))
-            prototype = structure.storedPrototype();
-        else {
-            prototype = object->getPrototype(vm, exec);
-            if (vm.exception())
-                return false;
-        }
-        if (!prototype.isObject())
-            return false;
-        object = asObject(prototype);
-    }
-}
-
-ALWAYS_INLINE bool JSObject::getNonIndexPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot)
-{
-    // This method only supports non-index PropertyNames.
-    ASSERT(!parseIndex(propertyName));
-
-    VM& vm = exec->vm();
-    auto& structureIDTable = vm.heap.structureIDTable();
-    JSObject* object = this;
-    MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
-    while (true) {
-        Structure& structure = *structureIDTable.get(object->structureID());
-        if (LIKELY(!TypeInfo::overridesGetOwnPropertySlot(object->inlineTypeFlags()))) {
-            if (object->getOwnNonIndexPropertySlot(vm, structure, propertyName, slot))
-                return true;
-        } else {
-            if (structure.classInfo()->methodTable.getOwnPropertySlot(object, exec, propertyName, slot))
-                return true;
-            if (UNLIKELY(vm.exception()))
-                return false;
-        }
-        JSValue prototype;
-        if (LIKELY(structure.classInfo()->methodTable.getPrototype == defaultGetPrototype || slot.internalMethodType() == PropertySlot::InternalMethodType::VMInquiry))
-            prototype = structure.storedPrototype();
-        else {
-            prototype = object->getPrototype(vm, exec);
-            if (vm.exception())
-                return false;
-        }
-        if (!prototype.isObject())
-            return false;
-        object = asObject(prototype);
-    }
-}
-
 inline JSValue JSObject::get(ExecState* exec, PropertyName propertyName) const
 {
     PropertySlot slot(this, PropertySlot::InternalMethodType::Get);
@@ -1368,22 +1308,6 @@ inline JSValue JSObject::get(ExecState* exec, unsigned propertyName) const
     return jsUndefined();
 }
 
-template<typename CallbackWhenNoException>
-ALWAYS_INLINE typename std::result_of<CallbackWhenNoException(bool, PropertySlot&)>::type JSObject::getPropertySlot(ExecState* exec, PropertyName propertyName, CallbackWhenNoException callback) const
-{
-    PropertySlot slot(this, PropertySlot::InternalMethodType::Get);
-    return getPropertySlot(exec, propertyName, slot, callback);
-}
-
-template<typename CallbackWhenNoException>
-ALWAYS_INLINE typename std::result_of<CallbackWhenNoException(bool, PropertySlot&)>::type JSObject::getPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot, CallbackWhenNoException callback) const
-{
-    bool found = const_cast<JSObject*>(this)->getPropertySlot(exec, propertyName, slot);
-    if (UNLIKELY(exec->hadException()))
-        return { };
-    return callback(found, slot);
-}
-
 template<JSObject::PutMode mode>
 ALWAYS_INLINE bool JSObject::putDirectInternal(VM& vm, PropertyName propertyName, JSValue value, unsigned attributes, PutPropertySlot& slot)
 {
index d343990..5ef7c59 100644 (file)
@@ -85,6 +85,82 @@ ALWAYS_INLINE bool JSObject::canPerformFastPutInline(ExecState* exec, VM& vm, Pr
     ASSERT_NOT_REACHED();
 }
 
+template<typename CallbackWhenNoException>
+ALWAYS_INLINE typename std::result_of<CallbackWhenNoException(bool, PropertySlot&)>::type JSObject::getPropertySlot(ExecState* exec, PropertyName propertyName, CallbackWhenNoException callback) const
+{
+    PropertySlot slot(this, PropertySlot::InternalMethodType::Get);
+    return getPropertySlot(exec, propertyName, slot, callback);
+}
+
+template<typename CallbackWhenNoException>
+ALWAYS_INLINE typename std::result_of<CallbackWhenNoException(bool, PropertySlot&)>::type JSObject::getPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot, CallbackWhenNoException callback) const
+{
+    bool found = const_cast<JSObject*>(this)->getPropertySlot(exec, propertyName, slot);
+    if (UNLIKELY(exec->hadException()))
+        return { };
+    return callback(found, slot);
+}
+
+ALWAYS_INLINE bool JSObject::getPropertySlot(ExecState* exec, unsigned propertyName, PropertySlot& slot)
+{
+    VM& vm = exec->vm();
+    auto& structureIDTable = vm.heap.structureIDTable();
+    JSObject* object = this;
+    MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
+    while (true) {
+        Structure& structure = *structureIDTable.get(object->structureID());
+        if (structure.classInfo()->methodTable.getOwnPropertySlotByIndex(object, exec, propertyName, slot))
+            return true;
+        if (UNLIKELY(vm.exception()))
+            return false;
+        JSValue prototype;
+        if (LIKELY(structure.classInfo()->methodTable.getPrototype == defaultGetPrototype || slot.internalMethodType() == PropertySlot::InternalMethodType::VMInquiry))
+            prototype = structure.storedPrototype();
+        else {
+            prototype = object->getPrototype(vm, exec);
+            if (vm.exception())
+                return false;
+        }
+        if (!prototype.isObject())
+            return false;
+        object = asObject(prototype);
+    }
+}
+
+ALWAYS_INLINE bool JSObject::getNonIndexPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot)
+{
+    // This method only supports non-index PropertyNames.
+    ASSERT(!parseIndex(propertyName));
+
+    VM& vm = exec->vm();
+    auto& structureIDTable = vm.heap.structureIDTable();
+    JSObject* object = this;
+    MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
+    while (true) {
+        Structure& structure = *structureIDTable.get(object->structureID());
+        if (LIKELY(!TypeInfo::overridesGetOwnPropertySlot(object->inlineTypeFlags()))) {
+            if (object->getOwnNonIndexPropertySlot(vm, structure, propertyName, slot))
+                return true;
+        } else {
+            if (structure.classInfo()->methodTable.getOwnPropertySlot(object, exec, propertyName, slot))
+                return true;
+            if (UNLIKELY(vm.exception()))
+                return false;
+        }
+        JSValue prototype;
+        if (LIKELY(structure.classInfo()->methodTable.getPrototype == defaultGetPrototype || slot.internalMethodType() == PropertySlot::InternalMethodType::VMInquiry))
+            prototype = structure.storedPrototype();
+        else {
+            prototype = object->getPrototype(vm, exec);
+            if (vm.exception())
+                return false;
+        }
+        if (!prototype.isObject())
+            return false;
+        object = asObject(prototype);
+    }
+}
+
 // ECMA 8.6.2.2
 ALWAYS_INLINE bool JSObject::putInline(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot)
 {
index 65d7238..8dd2454 100644 (file)
@@ -31,6 +31,7 @@
 #include "Exception.h"
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
+#include "JSObjectInlines.h"
 #include "JSPromise.h"
 #include "JSPromiseConstructor.h"
 #include "SlotVisitorInlines.h"
index 1ead2e8..3f6aa48 100644 (file)
@@ -32,6 +32,7 @@
 #include "JSCellInlines.h"
 #include "JSFunction.h"
 #include "JSGenericTypedArrayViewPrototypeFunctions.h"
+#include "JSObjectInlines.h"
 #include "TypedArrayAdaptors.h"
 
 namespace JSC {
index 68524ef..ee3b602 100644 (file)
@@ -33,6 +33,7 @@
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
 #include "JSMap.h"
+#include "JSObjectInlines.h"
 #include "MapPrototype.h"
 #include "StructureInlines.h"
 
index fbf618c..0ba0927 100644 (file)
@@ -37,6 +37,7 @@
 #include "Interpreter.h"
 #include "JSCJSValueInlines.h"
 #include "JSFunction.h"
+#include "JSObjectInlines.h"
 #include "LLIntPCRanges.h"
 #include "MarkedBlock.h"
 #include "MarkedBlockSet.h"
index 58e0b6c..8c293b7 100644 (file)
@@ -32,6 +32,7 @@
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
+#include "JSObjectInlines.h"
 #include "JSSet.h"
 #include "MapData.h"
 #include "SetPrototype.h"
index e123238..d91818a 100644 (file)
@@ -31,6 +31,7 @@
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
+#include "JSObjectInlines.h"
 #include "JSWeakMap.h"
 #include "StructureInlines.h"
 #include "WeakMapPrototype.h"
index b67ceeb..56c55ce 100644 (file)
@@ -31,6 +31,7 @@
 #include "JSCJSValueInlines.h"
 #include "JSCellInlines.h"
 #include "JSGlobalObject.h"
+#include "JSObjectInlines.h"
 #include "JSWeakSet.h"
 #include "StructureInlines.h"
 #include "WeakSetPrototype.h"
index c798be1..9e35783 100644 (file)
@@ -1,3 +1,18 @@
+2016-09-01  Mark Lam  <mark.lam@apple.com>
+
+        Move some JSObject and JSArray inline functions to their respective Inlines.h files.
+        https://bugs.webkit.org/show_bug.cgi?id=161499
+
+        Reviewed by Saam Barati.
+
+        No new tests because there is no behavior change.
+
+        * ForwardingHeaders/runtime/JSObjectInlines.h: Added.
+        * bindings/js/JSDOMBinding.h:
+        * bindings/js/JSSQLTransactionCustom.cpp:
+        * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
+        * contentextensions/ContentExtensionParser.cpp:
+
 2016-09-01  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         Fix ENABLE(CSS_GRID_LAYOUT) guards harder after r205102/r205292
diff --git a/Source/WebCore/ForwardingHeaders/runtime/JSObjectInlines.h b/Source/WebCore/ForwardingHeaders/runtime/JSObjectInlines.h
new file mode 100644 (file)
index 0000000..8fead35
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_JSObjectInlines_h
+#define WebCore_FWD_JSObjectInlines_h
+#include <JavaScriptCore/JSObjectInlines.h>
+#endif
index d416b60..67d8518 100644 (file)
@@ -39,6 +39,7 @@
 #include <runtime/JSArrayBuffer.h>
 #include <runtime/JSCJSValueInlines.h>
 #include <runtime/JSCellInlines.h>
+#include <runtime/JSObjectInlines.h>
 #include <runtime/JSTypedArrays.h>
 #include <runtime/Lookup.h>
 #include <runtime/ObjectConstructor.h>
index 8e9d57e..a39922c 100644 (file)
@@ -36,6 +36,7 @@
 #include "JSDOMWindowCustom.h"
 #include "SQLTransaction.h"
 #include "SQLValue.h"
+#include <runtime/JSObjectInlines.h>
 
 using namespace JSC;
 
index c9ce484..9d840d0 100644 (file)
@@ -96,6 +96,7 @@
 #include "WebGLVertexArrayObject.h"
 #include "WebGLVertexArrayObjectOES.h"
 #include <runtime/Error.h>
+#include <runtime/JSObjectInlines.h>
 #include <runtime/JSTypedArrays.h>
 #include <runtime/TypedArrayInlines.h>
 #include <runtime/TypedArrays.h>
index 3fe6b0d..6c99c4a 100644 (file)
@@ -39,6 +39,7 @@
 #include <JavaScriptCore/JSCJSValueInlines.h>
 #include <JavaScriptCore/JSGlobalObject.h>
 #include <JavaScriptCore/JSONObject.h>
+#include <JavaScriptCore/JSObjectInlines.h>
 #include <JavaScriptCore/StructureInlines.h>
 #include <JavaScriptCore/VM.h>
 #include <wtf/CurrentTime.h>