diff options
Diffstat (limited to 'src/3rdparty/v8/src/x64/code-stubs-x64.cc')
-rw-r--r-- | src/3rdparty/v8/src/x64/code-stubs-x64.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/3rdparty/v8/src/x64/code-stubs-x64.cc b/src/3rdparty/v8/src/x64/code-stubs-x64.cc index a8e52e9..8543094 100644 --- a/src/3rdparty/v8/src/x64/code-stubs-x64.cc +++ b/src/3rdparty/v8/src/x64/code-stubs-x64.cc @@ -220,6 +220,10 @@ void FastNewContextStub::Generate(MacroAssembler* masm) { __ movq(rbx, Operand(rsi, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX))); __ movq(Operand(rax, Context::SlotOffset(Context::GLOBAL_OBJECT_INDEX)), rbx); + // Copy the qmlglobal object from the previous context. + __ movq(rbx, Operand(rsi, Context::SlotOffset(Context::QML_GLOBAL_OBJECT_INDEX))); + __ movq(Operand(rax, Context::SlotOffset(Context::QML_GLOBAL_OBJECT_INDEX)), rbx); + // Initialize the rest of the slots to undefined. __ LoadRoot(rbx, Heap::kUndefinedValueRootIndex); for (int i = Context::MIN_CONTEXT_SLOTS; i < length; i++) { @@ -284,6 +288,10 @@ void FastNewBlockContextStub::Generate(MacroAssembler* masm) { __ movq(rbx, ContextOperand(rsi, Context::GLOBAL_OBJECT_INDEX)); __ movq(ContextOperand(rax, Context::GLOBAL_OBJECT_INDEX), rbx); + // Copy the qmlglobal object from the previous context. + __ movq(rbx, ContextOperand(rsi, Context::QML_GLOBAL_OBJECT_INDEX)); + __ movq(ContextOperand(rax, Context::QML_GLOBAL_OBJECT_INDEX), rbx); + // Initialize the rest of the slots to the hole value. __ LoadRoot(rbx, Heap::kTheHoleValueRootIndex); for (int i = 0; i < slots_; i++) { |