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(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(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(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(op.operand); break; }