diff options
Diffstat (limited to 'Source/JavaScriptCore/bytecode/Instruction.h')
-rw-r--r-- | Source/JavaScriptCore/bytecode/Instruction.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/bytecode/Instruction.h b/Source/JavaScriptCore/bytecode/Instruction.h index 92118eeb2..c4989d2db 100644 --- a/Source/JavaScriptCore/bytecode/Instruction.h +++ b/Source/JavaScriptCore/bytecode/Instruction.h @@ -48,6 +48,7 @@ namespace JSC { class JSCell; class Structure; class StructureChain; + struct LLIntCallLinkInfo; struct ValueProfile; #if ENABLE(JIT) @@ -146,9 +147,14 @@ namespace JSC { #endif struct Instruction { + Instruction() + { + u.jsCell.clear(); + } + Instruction(Opcode opcode) { -#if !ENABLE(COMPUTED_GOTO_INTERPRETER) +#if !ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER) // We have to initialize one of the pointer members to ensure that // the entire struct is initialized, when opcode is not a pointer. u.jsCell.clear(); @@ -182,6 +188,8 @@ namespace JSC { Instruction(PropertySlot::GetValueFunc getterFunc) { u.getterFunc = getterFunc; } + Instruction(LLIntCallLinkInfo* callLinkInfo) { u.callLinkInfo = callLinkInfo; } + Instruction(ValueProfile* profile) { u.profile = profile; } union { @@ -191,7 +199,9 @@ namespace JSC { WriteBarrierBase<StructureChain> structureChain; WriteBarrierBase<JSCell> jsCell; PropertySlot::GetValueFunc getterFunc; + LLIntCallLinkInfo* callLinkInfo; ValueProfile* profile; + void* pointer; } u; private: |