From 7dc5973bf12919d2d35230844beabe558d4faa00 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 11 Oct 2011 15:06:25 +1000 Subject: Update V8 Change-Id: I7a9da7dbb2116a441788407d60ed10155cded941 Reviewed-by: Kent Hansen --- src/v8/0004-Introduce-a-QML-compilation-mode.patch | 1871 ++++++++++++++++++++ 1 file changed, 1871 insertions(+) create mode 100644 src/v8/0004-Introduce-a-QML-compilation-mode.patch (limited to 'src/v8/0004-Introduce-a-QML-compilation-mode.patch') diff --git a/src/v8/0004-Introduce-a-QML-compilation-mode.patch b/src/v8/0004-Introduce-a-QML-compilation-mode.patch new file mode 100644 index 0000000000..4b79d94e68 --- /dev/null +++ b/src/v8/0004-Introduce-a-QML-compilation-mode.patch @@ -0,0 +1,1871 @@ +From 27ef7b7b37255a9965fe31fb7597720f57ed5154 Mon Sep 17 00:00:00 2001 +From: Aaron Kennedy +Date: Wed, 5 Oct 2011 13:01:30 +1000 +Subject: [PATCH 04/11] Introduce a QML compilation mode + +In QML mode, there is a second global object - known as the QML +global object. During property resolution, if a property is not +present on the JS global object, it is resolve on the QML global +object. + +This global object behavior is only enabled if a script is being +compiled in QML mode. The object to use as the QML global object +is passed as a parameter to the Script::Run() method. Any function +closures etc. created during the run will retain a reference to this +object, so different objects can be passed in different script +runs. +--- + include/v8.h | 19 ++++++++-- + src/api.cc | 52 ++++++++++++++++++++++++----- + src/arm/code-stubs-arm.cc | 4 ++ + src/arm/full-codegen-arm.cc | 28 +++++++++------- + src/arm/lithium-arm.cc | 2 +- + src/arm/lithium-arm.h | 6 +++- + src/arm/lithium-codegen-arm.cc | 7 ++-- + src/arm/macro-assembler-arm.h | 5 +++ + src/ast-inl.h | 5 +++ + src/ast.h | 1 + + src/code-stubs.h | 2 +- + src/compiler.cc | 15 +++++++- + src/compiler.h | 16 +++++++-- + src/contexts.cc | 35 +++++++++++++++++++ + src/contexts.h | 4 ++ + src/execution.cc | 31 ++++++++++++++--- + src/execution.h | 8 ++++ + src/full-codegen.cc | 3 +- + src/full-codegen.h | 1 + + src/heap.cc | 4 ++ + src/hydrogen-instructions.h | 8 ++++- + src/hydrogen.cc | 2 + + src/ia32/code-stubs-ia32.cc | 5 +++ + src/ia32/full-codegen-ia32.cc | 28 +++++++++------- + src/ia32/lithium-codegen-ia32.cc | 7 ++-- + src/ia32/lithium-ia32.cc | 2 +- + src/ia32/lithium-ia32.h | 6 +++- + src/ia32/macro-assembler-ia32.h | 3 ++ + src/objects-inl.h | 2 + + src/objects.h | 4 ++ + src/parser.cc | 27 +++++++++++++-- + src/parser.h | 4 ++- + src/prettyprinter.cc | 3 ++ + src/runtime.cc | 68 +++++++++++++++++++++++++------------- + src/runtime.h | 8 ++-- + src/scopes.cc | 61 ++++++++++++++++++++++++++++++++++ + src/scopes.h | 8 ++++ + src/variables.cc | 3 +- + src/variables.h | 5 +++ + src/x64/code-stubs-x64.cc | 4 ++ + src/x64/full-codegen-x64.cc | 28 +++++++++------- + src/x64/lithium-codegen-x64.cc | 7 ++-- + src/x64/lithium-x64.cc | 2 +- + src/x64/lithium-x64.h | 6 +++ + src/x64/macro-assembler-x64.h | 5 +++ + 45 files changed, 445 insertions(+), 109 deletions(-) + +diff --git a/include/v8.h b/include/v8.h +index 3ef4dd6..193e2fe 100644 +--- a/include/v8.h ++++ b/include/v8.h +@@ -587,6 +587,11 @@ class ScriptOrigin { + */ + class V8EXPORT Script { + public: ++ enum CompileFlags { ++ Default = 0x00, ++ QmlMode = 0x01 ++ }; ++ + /** + * Compiles the specified script (context-independent). + * +@@ -605,7 +610,8 @@ class V8EXPORT Script { + static Local