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;
}