Move CallFrame and Register inlines functions out of JSScope.h.
authormark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 8 Sep 2014 22:58:25 +0000 (22:58 +0000)
committermark.lam@apple.com <mark.lam@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 8 Sep 2014 22:58:25 +0000 (22:58 +0000)
<https://webkit.org/b/136579>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This include fixing up some files to #include JSCInlines.h to pick up
these inline functions.  I also added JSCellInlines.h to JSCInlines.h
since it is included from many of the affected .cpp files.

* API/ObjCCallbackFunction.mm:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bindings/ScriptValue.cpp:
* inspector/InjectedScriptHost.cpp:
* inspector/InjectedScriptManager.cpp:
* inspector/JSGlobalObjectInspectorController.cpp:
* inspector/JSJavaScriptCallFrame.cpp:
* inspector/ScriptDebugServer.cpp:
* interpreter/CallFrameInlines.h:
(JSC::CallFrame::vm):
(JSC::CallFrame::lexicalGlobalObject):
(JSC::CallFrame::globalThisValue):
* interpreter/RegisterInlines.h: Added.
(JSC::Register::operator=):
(JSC::Register::scope):
* runtime/ArgumentsIteratorConstructor.cpp:
* runtime/JSArrayIterator.cpp:
* runtime/JSCInlines.h:
* runtime/JSCJSValue.cpp:
* runtime/JSMapIterator.cpp:
* runtime/JSPromiseConstructor.cpp:
* runtime/JSPromiseDeferred.cpp:
* runtime/JSPromiseFunctions.cpp:
* runtime/JSPromisePrototype.cpp:
* runtime/JSPromiseReaction.cpp:
* runtime/JSScope.h:
(JSC::Register::operator=): Deleted.
(JSC::Register::scope): Deleted.
(JSC::ExecState::vm): Deleted.
(JSC::ExecState::lexicalGlobalObject): Deleted.
(JSC::ExecState::globalThisValue): Deleted.
* runtime/JSSetIterator.cpp:
* runtime/MapConstructor.cpp:
* runtime/MapData.cpp:
* runtime/MapIteratorPrototype.cpp:
* runtime/MapPrototype.cpp:
* runtime/SetConstructor.cpp:
* runtime/SetIteratorPrototype.cpp:
* runtime/SetPrototype.cpp:
* runtime/WeakMapConstructor.cpp:
* runtime/WeakMapPrototype.cpp:

Source/WebCore:

No new tests.

Added #include of the appropriate *Inlines.h files.  Unlike in
JavaScriptCore, I #include'd the specific needed *Inlines.h instead of
JSCInlines.h.  This is done to minimize the need for WebCore to be
rebuilt when JSC changes are introduced.

* ForwardingHeaders/interpreter/RegisterInlines.h: Added.
* bindings/js/JSAudioBufferSourceNodeCustom.cpp:
* bindings/js/JSAudioTrackCustom.cpp:
* bindings/js/JSBiquadFilterNodeCustom.cpp:
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
* bindings/js/JSCommandLineAPIHostCustom.cpp:
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMStringListCustom.cpp:
* bindings/js/JSDOMWindowBase.cpp:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/JSDocumentCustom.cpp:
* bindings/js/JSHTMLDocumentCustom.cpp:
* bindings/js/JSOscillatorNodeCustom.cpp:
* bindings/js/JSPannerNodeCustom.cpp:
* bindings/js/JSPopStateEventCustom.cpp:
* dom/TreeWalker.cpp:
* html/HTMLPlugInImageElement.cpp:
* inspector/CommandLineAPIModule.cpp:
* inspector/InspectorController.cpp:

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

56 files changed:
Source/JavaScriptCore/API/ObjCCallbackFunction.mm
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/bindings/ScriptValue.cpp
Source/JavaScriptCore/inspector/InjectedScriptHost.cpp
Source/JavaScriptCore/inspector/InjectedScriptManager.cpp
Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.cpp
Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp
Source/JavaScriptCore/inspector/ScriptDebugServer.cpp
Source/JavaScriptCore/interpreter/CallFrameInlines.h
Source/JavaScriptCore/interpreter/RegisterInlines.h [new file with mode: 0644]
Source/JavaScriptCore/runtime/ArgumentsIteratorConstructor.cpp
Source/JavaScriptCore/runtime/JSArrayIterator.cpp
Source/JavaScriptCore/runtime/JSCInlines.h
Source/JavaScriptCore/runtime/JSCJSValue.cpp
Source/JavaScriptCore/runtime/JSMapIterator.cpp
Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp
Source/JavaScriptCore/runtime/JSPromiseDeferred.cpp
Source/JavaScriptCore/runtime/JSPromiseFunctions.cpp
Source/JavaScriptCore/runtime/JSPromisePrototype.cpp
Source/JavaScriptCore/runtime/JSPromiseReaction.cpp
Source/JavaScriptCore/runtime/JSScope.h
Source/JavaScriptCore/runtime/JSSetIterator.cpp
Source/JavaScriptCore/runtime/MapConstructor.cpp
Source/JavaScriptCore/runtime/MapData.cpp
Source/JavaScriptCore/runtime/MapIteratorPrototype.cpp
Source/JavaScriptCore/runtime/MapPrototype.cpp
Source/JavaScriptCore/runtime/SetConstructor.cpp
Source/JavaScriptCore/runtime/SetIteratorPrototype.cpp
Source/JavaScriptCore/runtime/SetPrototype.cpp
Source/JavaScriptCore/runtime/WeakMapConstructor.cpp
Source/JavaScriptCore/runtime/WeakMapPrototype.cpp
Source/WebCore/ChangeLog
Source/WebCore/ForwardingHeaders/interpreter/RegisterInlines.h [new file with mode: 0644]
Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp
Source/WebCore/bindings/js/JSAudioTrackCustom.cpp
Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp
Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp
Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp
Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
Source/WebCore/bindings/js/JSDOMBinding.h
Source/WebCore/bindings/js/JSDOMStringListCustom.cpp
Source/WebCore/bindings/js/JSDOMWindowBase.cpp
Source/WebCore/bindings/js/JSDOMWindowShell.cpp
Source/WebCore/bindings/js/JSDocumentCustom.cpp
Source/WebCore/bindings/js/JSHTMLDocumentCustom.cpp
Source/WebCore/bindings/js/JSOscillatorNodeCustom.cpp
Source/WebCore/bindings/js/JSPannerNodeCustom.cpp
Source/WebCore/bindings/js/JSPopStateEventCustom.cpp
Source/WebCore/dom/TreeWalker.cpp
Source/WebCore/html/HTMLPlugInImageElement.cpp
Source/WebCore/inspector/CommandLineAPIModule.cpp
Source/WebCore/inspector/InspectorController.cpp

index ef19223..6f34c9b 100644 (file)
@@ -32,9 +32,8 @@
 #import "APICast.h"
 #import "DelayedReleaseScope.h"
 #import "Error.h"
-#import "JSCJSValueInlines.h"
+#import "JSCInlines.h"
 #import "JSCell.h"
-#import "JSCellInlines.h"
 #import "JSContextInternal.h"
 #import "JSWrapperMap.h"
 #import "JSValueInternal.h"
index 83aa574..8d37f01 100644 (file)
@@ -1,3 +1,58 @@
+2014-09-08  Mark Lam  <mark.lam@apple.com>
+
+        Move CallFrame and Register inlines functions out of JSScope.h.
+        <https://webkit.org/b/136579>
+
+        Reviewed by Geoffrey Garen.
+
+        This include fixing up some files to #include JSCInlines.h to pick up
+        these inline functions.  I also added JSCellInlines.h to JSCInlines.h
+        since it is included from many of the affected .cpp files.
+
+        * API/ObjCCallbackFunction.mm:
+        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
+        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * bindings/ScriptValue.cpp:
+        * inspector/InjectedScriptHost.cpp:
+        * inspector/InjectedScriptManager.cpp:
+        * inspector/JSGlobalObjectInspectorController.cpp:
+        * inspector/JSJavaScriptCallFrame.cpp:
+        * inspector/ScriptDebugServer.cpp:
+        * interpreter/CallFrameInlines.h:
+        (JSC::CallFrame::vm):
+        (JSC::CallFrame::lexicalGlobalObject):
+        (JSC::CallFrame::globalThisValue):
+        * interpreter/RegisterInlines.h: Added.
+        (JSC::Register::operator=):
+        (JSC::Register::scope):
+        * runtime/ArgumentsIteratorConstructor.cpp:
+        * runtime/JSArrayIterator.cpp:
+        * runtime/JSCInlines.h:
+        * runtime/JSCJSValue.cpp:
+        * runtime/JSMapIterator.cpp:
+        * runtime/JSPromiseConstructor.cpp:
+        * runtime/JSPromiseDeferred.cpp:
+        * runtime/JSPromiseFunctions.cpp:
+        * runtime/JSPromisePrototype.cpp:
+        * runtime/JSPromiseReaction.cpp:
+        * runtime/JSScope.h:
+        (JSC::Register::operator=): Deleted.
+        (JSC::Register::scope): Deleted.
+        (JSC::ExecState::vm): Deleted.
+        (JSC::ExecState::lexicalGlobalObject): Deleted.
+        (JSC::ExecState::globalThisValue): Deleted.
+        * runtime/JSSetIterator.cpp:
+        * runtime/MapConstructor.cpp:
+        * runtime/MapData.cpp:
+        * runtime/MapIteratorPrototype.cpp:
+        * runtime/MapPrototype.cpp:
+        * runtime/SetConstructor.cpp:
+        * runtime/SetIteratorPrototype.cpp:
+        * runtime/SetPrototype.cpp:
+        * runtime/WeakMapConstructor.cpp:
+        * runtime/WeakMapPrototype.cpp:
+
 2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
 
         Remove FILTERS flag
index 88855cb..33cc4ea 100644 (file)
     <ClInclude Include="..\interpreter\JSStackInlines.h" />
     <ClInclude Include="..\interpreter\ProtoCallFrame.h" />
     <ClInclude Include="..\interpreter\Register.h" />
+    <ClInclude Include="..\interpreter\RegisterInlines.h" />
     <ClInclude Include="..\interpreter\StackVisitor.h" />
     <ClInclude Include="..\interpreter\VMInspector.h" />
     <ClInclude Include="..\jit\AccessorCallJITStubRoutine.h" />
index 7c1a2b1..750992a 100644 (file)
     <ClInclude Include="..\interpreter\Register.h">
       <Filter>interpreter</Filter>
     </ClInclude>
+    <ClInclude Include="..\interpreter\RegisterInlines.h">
+      <Filter>interpreter</Filter>
+    </ClInclude>
     <ClInclude Include="..\interpreter\StackVisitor.h">
       <Filter>interpreter</Filter>
     </ClInclude>
index 9ac2b6e..541477c 100644 (file)
                E49DC16B12EF293E00184A1F /* SourceProviderCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E49DC15512EF277200184A1F /* SourceProviderCache.cpp */; };
                E49DC16C12EF294E00184A1F /* SourceProviderCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC15112EF272200184A1F /* SourceProviderCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
                E49DC16D12EF295300184A1F /* SourceProviderCacheItem.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC14912EF261A00184A1F /* SourceProviderCacheItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               FE0403F519B990220034161B /* RegisterInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0403F419B990220034161B /* RegisterInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
                FE20CE9D15F04A9500DF3430 /* LLIntCLoop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20CE9B15F04A9500DF3430 /* LLIntCLoop.cpp */; };
                FE20CE9E15F04A9500DF3430 /* LLIntCLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20CE9C15F04A9500DF3430 /* LLIntCLoop.h */; settings = {ATTRIBUTES = (Private, ); }; };
                FE4A331F15BD2E07006F54F3 /* VMInspector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE4A331D15BD2E07006F54F3 /* VMInspector.cpp */; };
                F692A87D0255597D01FF60F7 /* RegExp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RegExp.cpp; sourceTree = "<group>"; tabWidth = 8; };
                F692A87E0255597D01FF60F7 /* RegExp.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = RegExp.h; sourceTree = "<group>"; tabWidth = 8; };
                F692A8870255597D01FF60F7 /* JSCJSValue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCJSValue.cpp; sourceTree = "<group>"; tabWidth = 8; };
+               FE0403F419B990220034161B /* RegisterInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegisterInlines.h; path = interpreter/RegisterInlines.h; sourceTree = "<group>"; };
                FE20CE9B15F04A9500DF3430 /* LLIntCLoop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LLIntCLoop.cpp; path = llint/LLIntCLoop.cpp; sourceTree = "<group>"; };
                FE20CE9C15F04A9500DF3430 /* LLIntCLoop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LLIntCLoop.h; path = llint/LLIntCLoop.h; sourceTree = "<group>"; };
                FE4A331D15BD2E07006F54F3 /* VMInspector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMInspector.cpp; sourceTree = "<group>"; };
                0867D691FE84028FC02AAC07 /* JavaScriptCore */ = {
                        isa = PBXGroup;
                        children = (
+                               FE0403F419B990220034161B /* RegisterInlines.h */,
                                6529FB3018B2D63900C61102 /* generate-bytecode-files */,
                                8604F4F2143A6C4400B295F5 /* ChangeLog */,
                                F692A8540255597D01FF60F7 /* create_hash_table */,
                                2AD2EDFB19799E38004D6478 /* EnumerationMode.h in Headers */,
                                147B83AC0E6DB8C9004775A4 /* BatchedTransitionOptimizer.h in Headers */,
                                2A111246192FCE79005EE18D /* CustomGetterSetter.h in Headers */,
+                               FE0403F519B990220034161B /* RegisterInlines.h in Headers */,
                                A584032018BFFBE1005A0811 /* InspectorAgent.h in Headers */,
                                2AABCDE718EF294200002096 /* GCLogging.h in Headers */,
                                FE5248F9191442D900B7FDE4 /* VariableWatchpointSetInlines.h in Headers */,
index 004ff24..a6b1481 100644 (file)
@@ -32,8 +32,8 @@
 
 #include "APICast.h"
 #include "InspectorValues.h"
+#include "JSCInlines.h"
 #include "JSLock.h"
-#include "StructureInlines.h"
 
 using namespace JSC;
 using namespace Inspector;
index db917f8..96d0b96 100644 (file)
@@ -28,6 +28,7 @@
 
 #if ENABLE(INSPECTOR)
 
+#include "JSCInlines.h"
 #include "JSInjectedScriptHost.h"
 
 using namespace JSC;
index 59a0ede..3787495 100644 (file)
@@ -37,6 +37,7 @@
 #include "InjectedScriptHost.h"
 #include "InjectedScriptSource.h"
 #include "InspectorValues.h"
+#include "JSCInlines.h"
 #include "JSInjectedScriptHost.h"
 #include "JSLock.h"
 #include "ScriptObject.h"
index 8809e8a..d598b32 100644 (file)
@@ -35,6 +35,7 @@
 #include "InspectorAgent.h"
 #include "InspectorBackendDispatcher.h"
 #include "InspectorFrontendChannel.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSGlobalObjectConsoleAgent.h"
 #include "JSGlobalObjectConsoleClient.h"
index 036920d..aa0f39f 100644 (file)
 
 #include "DebuggerScope.h"
 #include "Error.h"
+#include "JSCInlines.h"
 #include "JSCJSValue.h"
-#include "JSCellInlines.h"
 #include "JSJavaScriptCallFramePrototype.h"
-#include "StructureInlines.h"
 
 using namespace JSC;
 
index 656e9da..68a17d2 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "DebuggerCallFrame.h"
 #include "DebuggerScope.h"
+#include "JSCInlines.h"
 #include "JSJavaScriptCallFrame.h"
 #include "JSLock.h"
 #include "JavaScriptCallFrame.h"
index 05fba39..fffcbf2 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "CallFrame.h"
 #include "CodeBlock.h"
+#include "JSScope.h"
 
 namespace JSC  {
 
@@ -147,6 +148,22 @@ inline JSValue CallFrame::uncheckedActivation() const
     return registers()[activationRegister.offset()].jsValue();
 }
 
+inline VM& CallFrame::vm() const
+{
+    ASSERT(scope()->vm());
+    return *scope()->vm();
+}
+
+inline JSGlobalObject* CallFrame::lexicalGlobalObject() const
+{
+    return scope()->globalObject();
+}
+
+inline JSObject* CallFrame::globalThisValue() const
+{
+    return scope()->globalThis();
+}
+
 } // namespace JSC
 
 #endif // CallFrameInlines_h
diff --git a/Source/JavaScriptCore/interpreter/RegisterInlines.h b/Source/JavaScriptCore/interpreter/RegisterInlines.h
new file mode 100644 (file)
index 0000000..de4b633
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#ifndef RegisterInlines_h
+#define RegisterInlines_h
+
+#include "JSScope.h"
+#include "Register.h"
+
+namespace JSC {
+
+inline Register& Register::operator=(JSScope* scope)
+{
+    *this = JSValue(scope);
+    return *this;
+}
+
+inline JSScope* Register::scope() const
+{
+    return jsCast<JSScope*>(jsValue());
+}
+
+} // namespace JSC
+
+#endif // Register_h
index df7c115..1882cb0 100644 (file)
 
 #include "ArgumentsIteratorPrototype.h"
 #include "JSArgumentsIterator.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 33bab71..fd6bd2c 100644 (file)
 #include "config.h"
 #include "JSArrayIterator.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
-#include "SlotVisitorInlines.h"
-#include "StructureInlines.h"
+#include "JSCInlines.h"
 
 namespace JSC {
 
index 9cf7028..6ced24e 100644 (file)
 #include "Interpreter.h"
 #include "JSArrayBufferViewInlines.h"
 #include "JSCJSValueInlines.h"
+#include "JSCellInlines.h"
 #include "JSFunctionInlines.h"
 #include "JSProxy.h"
 #include "JSString.h"
 #include "Operations.h"
+#include "RegisterInlines.h"
 #include "SlotVisitorInlines.h"
 #include "StructureInlines.h"
 
index c233f4c..f67ff13 100644 (file)
 #include "Error.h"
 #include "ExceptionHelpers.h"
 #include "GetterSetter.h"
-#include "JSCJSValueInlines.h"
+#include "JSCInlines.h"
 #include "JSFunction.h"
 #include "JSGlobalObject.h"
 #include "JSNotAnObject.h"
 #include "NumberObject.h"
-#include "StructureInlines.h"
 #include <wtf/MathExtras.h>
 #include <wtf/StringExtras.h>
 
index 4d76565..53c4532 100644 (file)
 #include "config.h"
 #include "JSMapIterator.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSMap.h"
-#include "SlotVisitorInlines.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 261a888..9c85ae4 100644 (file)
 #if ENABLE(PROMISES)
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSPromise.h"
 #include "JSPromiseDeferred.h"
 #include "JSPromiseFunctions.h"
 #include "JSPromisePrototype.h"
 #include "Lookup.h"
 #include "NumberObject.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index d82a1ce..06a82cc 100644 (file)
 #if ENABLE(PROMISES)
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSPromise.h"
 #include "JSPromiseConstructor.h"
 #include "JSPromiseFunctions.h"
-#include "SlotVisitorInlines.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index b8d82f2..70e504c 100644 (file)
 #if ENABLE(PROMISES)
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSPromise.h"
 #include "JSPromiseConstructor.h"
 #include "JSPromiseDeferred.h"
 #include "NumberObject.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 8558c77..391b160 100644 (file)
 #if ENABLE(PROMISES)
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSPromise.h"
 #include "JSPromiseDeferred.h"
 #include "JSPromiseFunctions.h"
 #include "JSPromiseReaction.h"
 #include "Microtask.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 689abd2..27873e3 100644 (file)
 #if ENABLE(PROMISES)
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSPromiseDeferred.h"
 #include "Microtask.h"
-#include "SlotVisitorInlines.h"
 #include "StrongInlines.h"
 
 namespace JSC {
index 57a1fbb..c78eec5 100644 (file)
@@ -225,33 +225,6 @@ inline VM* JSScope::vm()
     return MarkedBlock::blockFor(this)->vm();
 }
 
-inline Register& Register::operator=(JSScope* scope)
-{
-    *this = JSValue(scope);
-    return *this;
-}
-
-inline JSScope* Register::scope() const
-{
-    return jsCast<JSScope*>(jsValue());
-}
-
-inline VM& ExecState::vm() const
-{
-    ASSERT(scope()->vm());
-    return *scope()->vm();
-}
-
-inline JSGlobalObject* ExecState::lexicalGlobalObject() const
-{
-    return scope()->globalObject();
-}
-
-inline JSObject* ExecState::globalThisValue() const
-{
-    return scope()->globalThis();
-}
-
 inline size_t JSScope::offsetOfNext()
 {
     return OBJECT_OFFSETOF(JSScope, m_next);
index 621b75f..9da3817 100644 (file)
 #include "config.h"
 #include "JSSetIterator.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSSet.h"
-#include "SlotVisitorInlines.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index fb68324..4879186 100644 (file)
 #include "MapConstructor.h"
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSMap.h"
 #include "MapPrototype.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index ddc6026..8c585c6 100644 (file)
@@ -29,8 +29,7 @@
 #include "CopiedAllocator.h"
 #include "CopyVisitorInlines.h"
 #include "ExceptionHelpers.h"
-#include "JSCJSValueInlines.h"
-#include "SlotVisitorInlines.h"
+#include "JSCInlines.h"
 
 #include <wtf/CryptographicallyRandomNumber.h>
 #include <wtf/MathExtras.h>
index b220b98..ca9b87d 100644 (file)
 #include "config.h"
 #include "MapIteratorPrototype.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSMapIterator.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index d2213f4..4aeb663 100644 (file)
 #include "Error.h"
 #include "ExceptionHelpers.h"
 #include "GetterSetter.h"
-#include "JSCJSValueInlines.h"
-#include "JSFunctionInlines.h"
+#include "JSCInlines.h"
 #include "JSMap.h"
 #include "JSMapIterator.h"
 #include "MapData.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 45e3440..2e0f63a 100644 (file)
 #include "SetConstructor.h"
 
 #include "Error.h"
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSSet.h"
 #include "MapData.h"
 #include "SetPrototype.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 573acfa..1ccd1f2 100644 (file)
 #include "config.h"
 #include "SetIteratorPrototype.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSSetIterator.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 05233ab..9431f72 100644 (file)
 #include "Error.h"
 #include "ExceptionHelpers.h"
 #include "GetterSetter.h"
-#include "JSCJSValueInlines.h"
-#include "JSFunctionInlines.h"
+#include "JSCInlines.h"
 #include "JSSet.h"
 #include "JSSetIterator.h"
 #include "MapData.h"
-#include "StructureInlines.h"
 
 namespace JSC {
 
index 9de86be..ef623f7 100644 (file)
 #include "config.h"
 #include "WeakMapConstructor.h"
 
-#include "JSCJSValueInlines.h"
-#include "JSCellInlines.h"
+#include "JSCInlines.h"
 #include "JSGlobalObject.h"
 #include "JSWeakMap.h"
-#include "StructureInlines.h"
 #include "WeakMapPrototype.h"
 
 namespace JSC {
index 9215831..87f5632 100644 (file)
@@ -26,9 +26,8 @@
 #include "config.h"
 #include "WeakMapPrototype.h"
 
-#include "JSCJSValueInlines.h"
+#include "JSCInlines.h"
 #include "JSWeakMap.h"
-#include "StructureInlines.h"
 #include "WeakMapData.h"
 
 namespace JSC {
index ed87247..ac4b074 100644 (file)
@@ -1,3 +1,39 @@
+2014-09-05  Mark Lam  <mark.lam@apple.com>
+
+        Move CallFrame and Register inlines functions out of JSScope.h.
+        <https://webkit.org/b/136579>
+
+        Reviewed by Geoffrey Garen.
+
+        No new tests.
+
+        Added #include of the appropriate *Inlines.h files.  Unlike in
+        JavaScriptCore, I #include'd the specific needed *Inlines.h instead of
+        JSCInlines.h.  This is done to minimize the need for WebCore to be
+        rebuilt when JSC changes are introduced.
+
+        * ForwardingHeaders/interpreter/RegisterInlines.h: Added.
+        * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
+        * bindings/js/JSAudioTrackCustom.cpp:
+        * bindings/js/JSBiquadFilterNodeCustom.cpp:
+        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
+        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
+        * bindings/js/JSCommandLineAPIHostCustom.cpp:
+        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
+        * bindings/js/JSDOMBinding.h:
+        * bindings/js/JSDOMStringListCustom.cpp:
+        * bindings/js/JSDOMWindowBase.cpp:
+        * bindings/js/JSDOMWindowShell.cpp:
+        * bindings/js/JSDocumentCustom.cpp:
+        * bindings/js/JSHTMLDocumentCustom.cpp:
+        * bindings/js/JSOscillatorNodeCustom.cpp:
+        * bindings/js/JSPannerNodeCustom.cpp:
+        * bindings/js/JSPopStateEventCustom.cpp:
+        * dom/TreeWalker.cpp:
+        * html/HTMLPlugInImageElement.cpp:
+        * inspector/CommandLineAPIModule.cpp:
+        * inspector/InspectorController.cpp:
+
 2014-09-08  Dean Jackson  <dino@apple.com>
 
         Separate the Apple media controls module from other ports
diff --git a/Source/WebCore/ForwardingHeaders/interpreter/RegisterInlines.h b/Source/WebCore/ForwardingHeaders/interpreter/RegisterInlines.h
new file mode 100644 (file)
index 0000000..dddf550
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_RegisterInlines_h
+#define WebCore_FWD_RegisterInlines_h
+#include <JavaScriptCore/RegisterInlines.h>
+#endif
index e6b5064..a2a1610 100644 (file)
@@ -32,6 +32,8 @@
 #include "AudioBuffer.h"
 #include "AudioBufferSourceNode.h"
 #include "JSAudioBuffer.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSCJSValueInlines.h>
 
index a3aaba6..ae632ac 100644 (file)
@@ -30,6 +30,7 @@
 #include "JSAudioTrack.h"
 
 #include "JSTrackCustom.h"
+#include <interpreter/CallFrameInlines.h>
 
 using namespace JSC;
 
index f8c1385..0ef006a 100644 (file)
@@ -30,6 +30,8 @@
 
 #include "BiquadFilterNode.h"
 #include "ExceptionCode.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSCJSValueInlines.h>
 
index 11de5d3..8d06f64 100644 (file)
@@ -36,6 +36,7 @@
 #include "RuntimeEnabledFeatures.h"
 #include "Settings.h"
 #include "StyleProperties.h"
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/IdentifierInlines.h>
 #include <runtime/StringPrototype.h>
 #include <wtf/ASCIICType.h>
index efa539f..addfa12 100644 (file)
@@ -33,6 +33,8 @@
 #include "JSHTMLCanvasElement.h"
 #include "JSHTMLImageElement.h"
 #include "JSImageData.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 
 using namespace JSC;
 
index 79548e8..b10f5e9 100644 (file)
@@ -44,6 +44,8 @@
 #include "Storage.h"
 #include <bindings/ScriptValue.h>
 #include <inspector/InspectorValues.h>
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <parser/SourceCode.h>
 #include <runtime/IdentifierInlines.h>
 #include <runtime/JSArray.h>
index 5520a86..af1d400 100644 (file)
@@ -35,6 +35,7 @@
 #include "JSSQLError.h"
 #include "JSSQLTransaction.h"
 #include "ScriptExecutionContext.h"
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/JSLock.h>
 #include <wtf/Ref.h>
 
index b5c8c19..27459af 100644 (file)
@@ -34,6 +34,8 @@
 #include <heap/SlotVisitorInlines.h>
 #include <heap/Weak.h>
 #include <heap/WeakInlines.h>
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSArray.h>
 #include <runtime/JSArrayBuffer.h>
index 23337b2..f646210 100644 (file)
@@ -19,6 +19,8 @@
 #include "config.h"
 #include "JSDOMStringList.h"
 
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/JSCJSValueInlines.h>
 
 using namespace JSC;
index aebea88..6afa8a7 100644 (file)
@@ -36,6 +36,7 @@
 #include "SecurityOrigin.h"
 #include "Settings.h"
 #include "WebCoreJSClientData.h"
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/Microtask.h>
 #include <wtf/MainThread.h>
 
index 5368a3e..8adb9ba 100644 (file)
@@ -35,6 +35,7 @@
 #include "DOMWindow.h"
 #include "ScriptController.h"
 #include <heap/StrongInlines.h>
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/JSObject.h>
 
 using namespace JSC;
index fa24443..1de07d8 100644 (file)
@@ -34,6 +34,7 @@
 #include "ScriptController.h"
 #include "SVGDocument.h"
 #include "TouchList.h"
+#include <interpreter/CallFrameInlines.h>
 #include <wtf/GetPtr.h>
 
 #if ENABLE(WEBGL)
index 1ad3c62..622fbdd 100644 (file)
@@ -41,6 +41,7 @@
 #include "JSMainThreadExecState.h"
 #include "SegmentedString.h"
 #include "DocumentParser.h"
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSCell.h>
 #include <wtf/unicode/CharacterNames.h>
index 02c2abe..a994af6 100644 (file)
@@ -30,6 +30,8 @@
 
 #include "ExceptionCode.h"
 #include "OscillatorNode.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSCJSValueInlines.h>
 
index 05aab69..e8d11aa 100644 (file)
@@ -30,6 +30,8 @@
 
 #include "ExceptionCode.h"
 #include "PannerNode.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/Error.h>
 #include <runtime/JSCJSValueInlines.h>
 
index 47aec80..824cb3e 100644 (file)
@@ -32,6 +32,8 @@
 #include "JSPopStateEvent.h"
 
 #include "JSHistory.h"
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/JSCJSValueInlines.h>
 
 using namespace JSC;
index 1758ab2..7c5476d 100644 (file)
@@ -29,6 +29,8 @@
 #include "ContainerNode.h"
 #include "NodeTraversal.h"
 
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 #include <runtime/JSCJSValueInlines.h>
 
 namespace WebCore {
index 496ed5b..c3afe01 100644 (file)
@@ -52,6 +52,7 @@
 #include "SubframeLoader.h"
 #include <JavaScriptCore/APICast.h>
 #include <JavaScriptCore/JSBase.h>
+#include <interpreter/CallFrameInlines.h>
 #include <wtf/HashMap.h>
 #include <wtf/text/StringHash.h>
 
index 5f2fbe9..3914b00 100644 (file)
@@ -32,6 +32,8 @@
 #include "JSCommandLineAPIHost.h"
 #include "WebInjectedScriptManager.h"
 #include <inspector/InjectedScript.h>
+#include <interpreter/CallFrameInlines.h>
+#include <interpreter/RegisterInlines.h>
 
 using namespace JSC;
 using namespace Inspector;
index c7c8795..2b02009 100644 (file)
@@ -72,6 +72,7 @@
 #include <inspector/IdentifiersFactory.h>
 #include <inspector/InspectorBackendDispatcher.h>
 #include <inspector/agents/InspectorAgent.h>
+#include <interpreter/CallFrameInlines.h>
 #include <runtime/JSLock.h>
 
 using namespace JSC;