Blob Blame Raw
diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp
--- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333	2017-02-07 09:05:07.000000000 +0100
+++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp	2017-06-16 10:34:57.859748036 +0200
@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S
                 instructions[i + 5].u.watchpointSet = op.watchpointSet;
             else if (op.structure)
                 instructions[i + 5].u.structure.set(vm, this, op.structure);
-            instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
+            if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar)
+                instructions[i + 6].u.operand = op.operand;
+            else
+                instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
             break;
         }
 
@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S
                     op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident));
             } else if (op.structure)
                 instructions[i + 5].u.structure.set(vm, this, op.structure);
-            instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
+            if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar)
+                instructions[i + 6].u.operand = op.operand;
+            else
+                instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
 
             break;
         }