diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-10-27 13:34:16 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-09 13:06:01 +0100 |
commit | 194da71eed49e4d5e904e8c28cb510fb85b95912 (patch) | |
tree | 4bb40c02292e8fe51c1e975b09727b710748668c /src/3rdparty/v8/src/mips/lithium-mips.cc | |
parent | 504ef4cafdbc0c927d9f86ef21d9e7db757fd110 (diff) | |
download | qtjsbackend-194da71eed49e4d5e904e8c28cb510fb85b95912.tar.gz |
[V8] 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 resolved 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.
Change-Id: I75d6f8173260e0d4933fd33ad16a277542048f09
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/3rdparty/v8/src/mips/lithium-mips.cc')
-rw-r--r-- | src/3rdparty/v8/src/mips/lithium-mips.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/3rdparty/v8/src/mips/lithium-mips.cc b/src/3rdparty/v8/src/mips/lithium-mips.cc index b5eb128..7b71758 100644 --- a/src/3rdparty/v8/src/mips/lithium-mips.cc +++ b/src/3rdparty/v8/src/mips/lithium-mips.cc @@ -992,7 +992,7 @@ LInstruction* LChunkBuilder::DoDeclareGlobals(HDeclareGlobals* instr) { LInstruction* LChunkBuilder::DoGlobalObject(HGlobalObject* instr) { LOperand* context = UseRegisterAtStart(instr->value()); - return DefineAsRegister(new(zone()) LGlobalObject(context)); + return DefineAsRegister(new(zone()) LGlobalObject(context, instr->qml_global())); } @@ -1067,7 +1067,7 @@ LInstruction* LChunkBuilder::DoCallNamed(HCallNamed* instr) { LInstruction* LChunkBuilder::DoCallGlobal(HCallGlobal* instr) { argument_count_ -= instr->argument_count(); - return MarkAsCall(DefineFixed(new(zone()) LCallGlobal, v0), instr); + return MarkAsCall(DefineFixed(new(zone()) LCallGlobal(instr->qml_global()), v0), instr); } |