Revert "[runtime] Move Context::native_context to the map"
This reverts commit f05bae1e0d
.
Reason for revert: broke arm sim debug
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/17714
https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8899519852984476944/+/steps/Check_-_trusted/0/logs/FunctionDetailsInlining/0
Original change's description:
> [runtime] Move Context::native_context to the map
>
> Remove the native context slot from contexts by making context maps
> native-context-specific. Now we require 2 loads to go from a context to the
> native context, but we have 1 field fewer to store when creating contexts.
>
> Change-Id: I3c0d7c50c94060c4129db684f46a567de6f30e8d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1859629
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64296}
TBR=ulan@chromium.org,neis@chromium.org,petermarshall@chromium.org,ishell@chromium.org,verwaest@chromium.org,mslekova@chromium.org,victorgomes@google.com
Change-Id: Ie7b4086c3a9ab2627ecac599da36b20cf8d1f948
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1863200
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64299}
This commit is contained in:
parent
2e44cf7d64
commit
586ec99bf9
@ -146,7 +146,7 @@ class Internals {
|
||||
static const int kFixedArrayHeaderSize = 2 * kApiTaggedSize;
|
||||
static const int kEmbedderDataArrayHeaderSize = 2 * kApiTaggedSize;
|
||||
static const int kEmbedderDataSlotSize = kApiSystemPointerSize;
|
||||
static const int kNativeContextEmbedderDataOffset = 6 * kApiTaggedSize;
|
||||
static const int kNativeContextEmbedderDataOffset = 7 * kApiTaggedSize;
|
||||
static const int kFullStringRepresentationMask = 0x0f;
|
||||
static const int kStringEncodingMask = 0x8;
|
||||
static const int kExternalTwoByteRepresentationTag = 0x02;
|
||||
|
@ -117,6 +117,7 @@ extern class Context extends HeapObject {
|
||||
scope_info: ScopeInfo;
|
||||
previous: Object;
|
||||
extension: Object;
|
||||
native_context: Object;
|
||||
}
|
||||
extern class AwaitContext extends Context generates 'TNode<Context>';
|
||||
extern class BlockContext extends Context generates 'TNode<Context>';
|
||||
@ -302,7 +303,7 @@ extern class Map extends HeapObject {
|
||||
@ifnot(TAGGED_SIZE_8_BYTES) optional_padding: void;
|
||||
|
||||
prototype: HeapObject;
|
||||
constructor_or_back_pointer_or_native_context: Object;
|
||||
constructor_or_back_pointer: Object;
|
||||
instance_descriptors: DescriptorArray;
|
||||
@if(V8_DOUBLE_FIELDS_UNBOXING) layout_descriptor: LayoutDescriptor;
|
||||
@ifnot(V8_DOUBLE_FIELDS_UNBOXING) layout_descriptor: void;
|
||||
|
@ -45,9 +45,7 @@ TNode<Object> AsyncBuiltinsAssembler::AwaitOld(
|
||||
TNode<Context> closure_context = UncheckedCast<Context>(base);
|
||||
{
|
||||
// Initialize the await context, storing the {generator} as extension.
|
||||
TNode<Map> map = CAST(
|
||||
LoadContextElement(native_context, Context::AWAIT_CONTEXT_MAP_INDEX));
|
||||
StoreMapNoWriteBarrier(closure_context, map);
|
||||
StoreMapNoWriteBarrier(closure_context, RootIndex::kAwaitContextMap);
|
||||
StoreObjectFieldNoWriteBarrier(closure_context, Context::kLengthOffset,
|
||||
SmiConstant(Context::MIN_CONTEXT_SLOTS));
|
||||
TNode<Object> const empty_scope_info =
|
||||
@ -58,6 +56,8 @@ TNode<Object> AsyncBuiltinsAssembler::AwaitOld(
|
||||
native_context);
|
||||
StoreContextElementNoWriteBarrier(closure_context, Context::EXTENSION_INDEX,
|
||||
generator);
|
||||
StoreContextElementNoWriteBarrier(
|
||||
closure_context, Context::NATIVE_CONTEXT_INDEX, native_context);
|
||||
}
|
||||
|
||||
// Let promiseCapability be ! NewPromiseCapability(%Promise%).
|
||||
@ -138,9 +138,7 @@ TNode<Object> AsyncBuiltinsAssembler::AwaitOptimized(
|
||||
TNode<Context> closure_context = UncheckedCast<Context>(base);
|
||||
{
|
||||
// Initialize the await context, storing the {generator} as extension.
|
||||
TNode<Map> map = CAST(
|
||||
LoadContextElement(native_context, Context::AWAIT_CONTEXT_MAP_INDEX));
|
||||
StoreMapNoWriteBarrier(closure_context, map);
|
||||
StoreMapNoWriteBarrier(closure_context, RootIndex::kAwaitContextMap);
|
||||
StoreObjectFieldNoWriteBarrier(closure_context, Context::kLengthOffset,
|
||||
SmiConstant(Context::MIN_CONTEXT_SLOTS));
|
||||
TNode<Object> const empty_scope_info =
|
||||
@ -151,6 +149,8 @@ TNode<Object> AsyncBuiltinsAssembler::AwaitOptimized(
|
||||
native_context);
|
||||
StoreContextElementNoWriteBarrier(closure_context, Context::EXTENSION_INDEX,
|
||||
generator);
|
||||
StoreContextElementNoWriteBarrier(
|
||||
closure_context, Context::NATIVE_CONTEXT_INDEX, native_context);
|
||||
}
|
||||
|
||||
// Initialize resolve handler
|
||||
|
@ -412,9 +412,8 @@ TNode<JSReceiver> CallOrConstructBuiltinsAssembler::GetCompatibleReceiver(
|
||||
// {var_template} variable), and see if that is a HeapObject.
|
||||
// If it's a Smi then it is non-instance prototype on some
|
||||
// initial map, which cannot be the case for API instances.
|
||||
TNode<Object> constructor =
|
||||
LoadObjectField(var_template.value(),
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
TNode<Object> constructor = LoadObjectField(
|
||||
var_template.value(), Map::kConstructorOrBackPointerOffset);
|
||||
GotoIf(TaggedIsSmi(constructor), &holder_next);
|
||||
|
||||
// Now there are three cases for {constructor} that we care
|
||||
|
@ -196,8 +196,8 @@ TNode<JSObject> ConstructorBuiltinsAssembler::EmitFastNewObject(
|
||||
|
||||
// Fall back to runtime if the target differs from the new target's
|
||||
// initial map constructor.
|
||||
TNode<Object> new_target_constructor = LoadObjectField(
|
||||
initial_map, Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
TNode<Object> new_target_constructor =
|
||||
LoadObjectField(initial_map, Map::kConstructorOrBackPointerOffset);
|
||||
GotoIf(TaggedNotEqual(target, new_target_constructor), call_runtime);
|
||||
|
||||
TVARIABLE(HeapObject, properties);
|
||||
@ -230,21 +230,19 @@ TNode<Context> ConstructorBuiltinsAssembler::EmitFastNewFunctionContext(
|
||||
TNode<Context> function_context =
|
||||
UncheckedCast<Context>(AllocateInNewSpace(size));
|
||||
|
||||
TNode<NativeContext> native_context = LoadNativeContext(context);
|
||||
Context::Field index;
|
||||
RootIndex context_type;
|
||||
switch (scope_type) {
|
||||
case EVAL_SCOPE:
|
||||
index = Context::EVAL_CONTEXT_MAP_INDEX;
|
||||
context_type = RootIndex::kEvalContextMap;
|
||||
break;
|
||||
case FUNCTION_SCOPE:
|
||||
index = Context::FUNCTION_CONTEXT_MAP_INDEX;
|
||||
context_type = RootIndex::kFunctionContextMap;
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
TNode<Map> map = CAST(LoadContextElement(native_context, index));
|
||||
// Set up the header.
|
||||
StoreMapNoWriteBarrier(function_context, map);
|
||||
StoreMapNoWriteBarrier(function_context, context_type);
|
||||
TNode<IntPtrT> min_context_slots = IntPtrConstant(Context::MIN_CONTEXT_SLOTS);
|
||||
// TODO(ishell): for now, length also includes MIN_CONTEXT_SLOTS.
|
||||
TNode<IntPtrT> length = IntPtrAdd(slots_intptr, min_context_slots);
|
||||
@ -256,6 +254,9 @@ TNode<Context> ConstructorBuiltinsAssembler::EmitFastNewFunctionContext(
|
||||
context);
|
||||
StoreObjectFieldNoWriteBarrier(function_context, Context::kExtensionOffset,
|
||||
TheHoleConstant());
|
||||
TNode<NativeContext> native_context = LoadNativeContext(context);
|
||||
StoreObjectFieldNoWriteBarrier(function_context,
|
||||
Context::kNativeContextOffset, native_context);
|
||||
|
||||
// Initialize the varrest of the slots to undefined.
|
||||
TNode<Oddball> undefined = UndefinedConstant();
|
||||
|
@ -119,9 +119,7 @@ Node* ProxiesCodeStubAssembler::CreateProxyRevokeFunctionContext(
|
||||
Node* proxy, Node* native_context) {
|
||||
TNode<HeapObject> const context =
|
||||
Allocate(FixedArray::SizeFor(kProxyContextLength));
|
||||
TNode<Map> map = CAST(
|
||||
LoadContextElement(native_context, Context::FUNCTION_CONTEXT_MAP_INDEX));
|
||||
StoreMapNoWriteBarrier(context, map);
|
||||
StoreMapNoWriteBarrier(context, RootIndex::kFunctionContextMap);
|
||||
InitializeFunctionContext(native_context, context, kProxyContextLength);
|
||||
StoreContextElementNoWriteBarrier(CAST(context), kProxySlot, proxy);
|
||||
return context;
|
||||
|
@ -2354,7 +2354,7 @@ void Builtins::Generate_Call(MacroAssembler* masm, ConvertReceiverMode mode) {
|
||||
// Overwrite the original receiver with the (original) target.
|
||||
__ mov(Operand(esp, eax, times_system_pointer_size, kSystemPointerSize), edi);
|
||||
// Let the "call_as_function_delegate" take care of the rest.
|
||||
__ LoadNativeContextSlot(edi, Context::CALL_AS_FUNCTION_DELEGATE_INDEX);
|
||||
__ LoadGlobalFunction(Context::CALL_AS_FUNCTION_DELEGATE_INDEX, edi);
|
||||
__ Jump(masm->isolate()->builtins()->CallFunction(
|
||||
ConvertReceiverMode::kNotNullOrUndefined),
|
||||
RelocInfo::CODE_TARGET);
|
||||
@ -2474,7 +2474,7 @@ void Builtins::Generate_Construct(MacroAssembler* masm) {
|
||||
__ mov(Operand(esp, eax, times_system_pointer_size, kSystemPointerSize),
|
||||
edi);
|
||||
// Let the "call_as_constructor_delegate" take care of the rest.
|
||||
__ LoadNativeContextSlot(edi, Context::CALL_AS_CONSTRUCTOR_DELEGATE_INDEX);
|
||||
__ LoadGlobalFunction(Context::CALL_AS_CONSTRUCTOR_DELEGATE_INDEX, edi);
|
||||
__ Jump(masm->isolate()->builtins()->CallFunction(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
}
|
||||
|
@ -1775,7 +1775,7 @@ void MacroAssembler::CompareObjectType(Register object, Register map,
|
||||
UseScratchRegisterScope temps(this);
|
||||
const Register temp = type_reg == no_reg ? temps.Acquire() : type_reg;
|
||||
|
||||
LoadMap(map, object);
|
||||
ldr(map, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
CompareInstanceType(map, temp, type);
|
||||
}
|
||||
|
||||
@ -2010,19 +2010,13 @@ void TurboAssembler::Abort(AbortReason reason) {
|
||||
// will not return here
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadMap(Register destination, Register object) {
|
||||
ldr(destination, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadGlobalProxy(Register dst) {
|
||||
LoadNativeContextSlot(Context::GLOBAL_PROXY_INDEX, dst);
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadNativeContextSlot(int index, Register dst) {
|
||||
LoadMap(dst, cp);
|
||||
ldr(dst, FieldMemOperand(
|
||||
dst, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
ldr(dst, MemOperand(dst, Context::SlotOffset(index)));
|
||||
ldr(dst, NativeContextMemOperand());
|
||||
ldr(dst, ContextMemOperand(dst, index));
|
||||
}
|
||||
|
||||
void TurboAssembler::InitializeRootRegister() {
|
||||
@ -2084,7 +2078,7 @@ void MacroAssembler::AssertConstructor(Register object) {
|
||||
tst(object, Operand(kSmiTagMask));
|
||||
Check(ne, AbortReason::kOperandIsASmiAndNotAConstructor);
|
||||
push(object);
|
||||
LoadMap(object, object);
|
||||
ldr(object, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
ldrb(object, FieldMemOperand(object, Map::kBitFieldOffset));
|
||||
tst(object, Operand(Map::IsConstructorBit::kMask));
|
||||
pop(object);
|
||||
@ -2124,7 +2118,7 @@ void MacroAssembler::AssertGeneratorObject(Register object) {
|
||||
// Load map
|
||||
Register map = object;
|
||||
push(object);
|
||||
LoadMap(map, object);
|
||||
ldr(map, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
|
||||
// Check if JSGeneratorObject
|
||||
Label do_check;
|
||||
@ -2152,7 +2146,7 @@ void MacroAssembler::AssertUndefinedOrAllocationSite(Register object,
|
||||
AssertNotSmi(object);
|
||||
CompareRoot(object, RootIndex::kUndefinedValue);
|
||||
b(eq, &done_checking);
|
||||
LoadMap(scratch, object);
|
||||
ldr(scratch, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
CompareInstanceType(scratch, scratch, ALLOCATION_SITE_TYPE);
|
||||
Assert(eq, AbortReason::kExpectedUndefinedOrCell);
|
||||
bind(&done_checking);
|
||||
|
@ -620,8 +620,6 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
|
||||
void LeaveExitFrame(bool save_doubles, Register argument_count,
|
||||
bool argument_count_is_length = false);
|
||||
|
||||
void LoadMap(Register destination, Register object);
|
||||
|
||||
// Load the global proxy from the current context.
|
||||
void LoadGlobalProxy(Register dst);
|
||||
|
||||
@ -807,6 +805,17 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
|
||||
DISALLOW_IMPLICIT_CONSTRUCTORS(MacroAssembler);
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Static helper functions.
|
||||
|
||||
inline MemOperand ContextMemOperand(Register context, int index = 0) {
|
||||
return MemOperand(context, Context::SlotOffset(index));
|
||||
}
|
||||
|
||||
inline MemOperand NativeContextMemOperand() {
|
||||
return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX);
|
||||
}
|
||||
|
||||
#define ACCESS_MASM(masm) masm->
|
||||
|
||||
} // namespace internal
|
||||
|
@ -1534,7 +1534,8 @@ void MacroAssembler::AssertConstructor(Register object) {
|
||||
UseScratchRegisterScope temps(this);
|
||||
Register temp = temps.AcquireX();
|
||||
|
||||
LoadMap(temp, object);
|
||||
LoadTaggedPointerField(temp,
|
||||
FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
Ldrb(temp, FieldMemOperand(temp, Map::kBitFieldOffset));
|
||||
Tst(temp, Operand(Map::IsConstructorBit::kMask));
|
||||
|
||||
@ -1573,7 +1574,7 @@ void MacroAssembler::AssertGeneratorObject(Register object) {
|
||||
// Load map
|
||||
UseScratchRegisterScope temps(this);
|
||||
Register temp = temps.AcquireX();
|
||||
LoadMap(temp, object);
|
||||
LoadTaggedPointerField(temp, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
|
||||
Label do_check;
|
||||
// Load instance type and check if JSGeneratorObject
|
||||
@ -1599,7 +1600,8 @@ void MacroAssembler::AssertUndefinedOrAllocationSite(Register object) {
|
||||
Label done_checking;
|
||||
AssertNotSmi(object);
|
||||
JumpIfRoot(object, RootIndex::kUndefinedValue, &done_checking);
|
||||
LoadMap(scratch, object);
|
||||
LoadTaggedPointerField(scratch,
|
||||
FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
CompareInstanceType(scratch, scratch, ALLOCATION_SITE_TYPE);
|
||||
Assert(eq, AbortReason::kExpectedUndefinedOrCell);
|
||||
Bind(&done_checking);
|
||||
@ -2618,14 +2620,10 @@ void MacroAssembler::JumpIfObjectType(Register object, Register map,
|
||||
// Sets condition flags based on comparison, and returns type in type_reg.
|
||||
void MacroAssembler::CompareObjectType(Register object, Register map,
|
||||
Register type_reg, InstanceType type) {
|
||||
LoadMap(map, object);
|
||||
LoadTaggedPointerField(map, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
CompareInstanceType(map, type_reg, type);
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadMap(Register dst, Register object) {
|
||||
LoadTaggedPointerField(dst, FieldMemOperand(object, HeapObject::kMapOffset));
|
||||
}
|
||||
|
||||
// Sets condition flags based on comparison, and returns type in type_reg.
|
||||
void MacroAssembler::CompareInstanceType(Register map, Register type_reg,
|
||||
InstanceType type) {
|
||||
@ -3079,11 +3077,8 @@ void TurboAssembler::Abort(AbortReason reason) {
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadNativeContextSlot(int index, Register dst) {
|
||||
LoadMap(dst, cp);
|
||||
LoadTaggedPointerField(
|
||||
dst, FieldMemOperand(
|
||||
dst, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
LoadTaggedPointerField(dst, MemOperand(dst, Context::SlotOffset(index)));
|
||||
LoadTaggedPointerField(dst, NativeContextMemOperand());
|
||||
LoadTaggedPointerField(dst, ContextMemOperand(dst, index));
|
||||
}
|
||||
|
||||
// This is the main Printf implementation. All other Printf variants call
|
||||
@ -3339,6 +3334,14 @@ CPURegister UseScratchRegisterScope::AcquireNextAvailable(
|
||||
return result;
|
||||
}
|
||||
|
||||
MemOperand ContextMemOperand(Register context, int index) {
|
||||
return MemOperand(context, Context::SlotOffset(index));
|
||||
}
|
||||
|
||||
MemOperand NativeContextMemOperand() {
|
||||
return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX);
|
||||
}
|
||||
|
||||
void TurboAssembler::ComputeCodeStartAddress(const Register& rd) {
|
||||
// We can use adr to load a pc relative location.
|
||||
adr(rd, -pc_offset());
|
||||
|
@ -1878,8 +1878,6 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
|
||||
void LeaveExitFrame(bool save_doubles, const Register& scratch,
|
||||
const Register& scratch2);
|
||||
|
||||
void LoadMap(Register dst, Register object);
|
||||
|
||||
// Load the global proxy from the current context.
|
||||
void LoadGlobalProxy(Register dst);
|
||||
|
||||
@ -2083,6 +2081,9 @@ class UseScratchRegisterScope {
|
||||
RegList old_availablefp_; // kVRegister
|
||||
};
|
||||
|
||||
MemOperand ContextMemOperand(Register context, int index = 0);
|
||||
MemOperand NativeContextMemOperand();
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
|
@ -1835,8 +1835,7 @@ TNode<IntPtrT> CodeStubAssembler::LoadMapConstructorFunctionIndex(
|
||||
TNode<Object> CodeStubAssembler::LoadMapConstructor(SloppyTNode<Map> map) {
|
||||
CSA_SLOW_ASSERT(this, IsMap(map));
|
||||
TVARIABLE(Object, result,
|
||||
LoadObjectField(
|
||||
map, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
LoadObjectField(map, Map::kConstructorOrBackPointerOffset));
|
||||
|
||||
Label done(this), loop(this, &result);
|
||||
Goto(&loop);
|
||||
@ -1846,9 +1845,8 @@ TNode<Object> CodeStubAssembler::LoadMapConstructor(SloppyTNode<Map> map) {
|
||||
TNode<BoolT> is_map_type =
|
||||
InstanceTypeEqual(LoadInstanceType(CAST(result.value())), MAP_TYPE);
|
||||
GotoIfNot(is_map_type, &done);
|
||||
result =
|
||||
LoadObjectField(CAST(result.value()),
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
result = LoadObjectField(CAST(result.value()),
|
||||
Map::kConstructorOrBackPointerOffset);
|
||||
Goto(&loop);
|
||||
}
|
||||
BIND(&done);
|
||||
@ -1862,8 +1860,8 @@ TNode<WordT> CodeStubAssembler::LoadMapEnumLength(SloppyTNode<Map> map) {
|
||||
}
|
||||
|
||||
TNode<Object> CodeStubAssembler::LoadMapBackPointer(SloppyTNode<Map> map) {
|
||||
TNode<HeapObject> object = CAST(LoadObjectField(
|
||||
map, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
TNode<HeapObject> object =
|
||||
CAST(LoadObjectField(map, Map::kConstructorOrBackPointerOffset));
|
||||
return Select<Object>(
|
||||
IsMap(object), [=] { return object; },
|
||||
[=] { return UndefinedConstant(); });
|
||||
@ -2734,17 +2732,15 @@ void CodeStubAssembler::StoreContextElementNoWriteBarrier(
|
||||
|
||||
TNode<NativeContext> CodeStubAssembler::LoadNativeContext(
|
||||
SloppyTNode<Context> context) {
|
||||
TNode<Map> map = LoadMap(context);
|
||||
return CAST(LoadObjectField(
|
||||
map, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
return UncheckedCast<NativeContext>(
|
||||
LoadContextElement(context, Context::NATIVE_CONTEXT_INDEX));
|
||||
}
|
||||
|
||||
TNode<Context> CodeStubAssembler::LoadModuleContext(
|
||||
SloppyTNode<Context> context) {
|
||||
TNode<NativeContext> native_context = LoadNativeContext(context);
|
||||
TNode<Map> module_map = CAST(
|
||||
LoadContextElement(native_context, Context::MODULE_CONTEXT_MAP_INDEX));
|
||||
TVariable<Object> cur_context(context, this);
|
||||
TNode<Map> module_map = ModuleContextMapConstant();
|
||||
Variable cur_context(this, MachineRepresentation::kTaggedPointer);
|
||||
cur_context.Bind(context);
|
||||
|
||||
Label context_found(this);
|
||||
|
||||
@ -2755,13 +2751,12 @@ TNode<Context> CodeStubAssembler::LoadModuleContext(
|
||||
Goto(&context_search);
|
||||
BIND(&context_search);
|
||||
{
|
||||
CSA_ASSERT(this, Word32BinaryNot(
|
||||
TaggedEqual(cur_context.value(), native_context)));
|
||||
GotoIf(TaggedEqual(LoadMap(CAST(cur_context.value())), module_map),
|
||||
CSA_ASSERT(this, Word32BinaryNot(IsNativeContext(cur_context.value())));
|
||||
GotoIf(TaggedEqual(LoadMap(cur_context.value()), module_map),
|
||||
&context_found);
|
||||
|
||||
cur_context =
|
||||
LoadContextElement(CAST(cur_context.value()), Context::PREVIOUS_INDEX);
|
||||
cur_context.Bind(
|
||||
LoadContextElement(cur_context.value(), Context::PREVIOUS_INDEX));
|
||||
Goto(&context_search);
|
||||
}
|
||||
|
||||
@ -6561,7 +6556,7 @@ TNode<BoolT> CodeStubAssembler::IsPrivateName(SloppyTNode<Symbol> symbol) {
|
||||
|
||||
TNode<BoolT> CodeStubAssembler::IsNativeContext(
|
||||
SloppyTNode<HeapObject> object) {
|
||||
return HasInstanceType(object, NATIVE_CONTEXT_TYPE);
|
||||
return TaggedEqual(LoadMap(object), NativeContextMapConstant());
|
||||
}
|
||||
|
||||
TNode<BoolT> CodeStubAssembler::IsFixedDoubleArray(
|
||||
@ -8704,9 +8699,8 @@ TNode<Object> CodeStubAssembler::GetConstructor(TNode<Map> map) {
|
||||
|
||||
BIND(&loop);
|
||||
{
|
||||
var_maybe_constructor = CAST(
|
||||
LoadObjectField(var_maybe_constructor.value(),
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
var_maybe_constructor = CAST(LoadObjectField(
|
||||
var_maybe_constructor.value(), Map::kConstructorOrBackPointerOffset));
|
||||
GotoIf(IsMap(var_maybe_constructor.value()), &loop);
|
||||
Goto(&done);
|
||||
}
|
||||
@ -13494,9 +13488,7 @@ void CodeStubAssembler::PerformStackCheck(TNode<Context> context) {
|
||||
void CodeStubAssembler::InitializeFunctionContext(Node* native_context,
|
||||
Node* context, int slots) {
|
||||
DCHECK_GE(slots, Context::MIN_CONTEXT_SLOTS);
|
||||
TNode<Map> map = CAST(
|
||||
LoadContextElement(native_context, Context::FUNCTION_CONTEXT_MAP_INDEX));
|
||||
StoreMapNoWriteBarrier(context, map);
|
||||
StoreMapNoWriteBarrier(context, RootIndex::kFunctionContextMap);
|
||||
StoreObjectFieldNoWriteBarrier(context, FixedArray::kLengthOffset,
|
||||
SmiConstant(slots));
|
||||
|
||||
@ -13508,6 +13500,8 @@ void CodeStubAssembler::InitializeFunctionContext(Node* native_context,
|
||||
UndefinedConstant());
|
||||
StoreContextElementNoWriteBarrier(context, Context::EXTENSION_INDEX,
|
||||
TheHoleConstant());
|
||||
StoreContextElementNoWriteBarrier(context, Context::NATIVE_CONTEXT_INDEX,
|
||||
native_context);
|
||||
}
|
||||
|
||||
TNode<JSArray> CodeStubAssembler::ArrayCreate(TNode<Context> context,
|
||||
|
@ -101,8 +101,10 @@ enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol };
|
||||
V(megamorphic_symbol, megamorphic_symbol, MegamorphicSymbol) \
|
||||
V(MetaMap, meta_map, MetaMap) \
|
||||
V(MinusZeroValue, minus_zero_value, MinusZero) \
|
||||
V(ModuleContextMap, module_context_map, ModuleContextMap) \
|
||||
V(name_string, name_string, NameString) \
|
||||
V(NanValue, nan_value, Nan) \
|
||||
V(NativeContextMap, native_context_map, NativeContextMap) \
|
||||
V(next_string, next_string, NextString) \
|
||||
V(NoClosuresCellMap, no_closures_cell_map, NoClosuresCellMap) \
|
||||
V(null_to_string, null_to_string, NullToString) \
|
||||
@ -1040,8 +1042,7 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
|
||||
}
|
||||
|
||||
TNode<Object> LoadConstructorOrBackPointer(TNode<Map> map) {
|
||||
return LoadObjectField(map,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
return LoadObjectField(map, Map::kConstructorOrBackPointerOffset);
|
||||
}
|
||||
|
||||
// Reference is the CSA-equivalent of a Torque reference value,
|
||||
|
@ -638,13 +638,9 @@ void TurboAssembler::SarPair_cl(Register high, Register low) {
|
||||
bind(&done);
|
||||
}
|
||||
|
||||
void TurboAssembler::LoadMap(Register destination, Register object) {
|
||||
mov(destination, FieldOperand(object, HeapObject::kMapOffset));
|
||||
}
|
||||
|
||||
void MacroAssembler::CmpObjectType(Register heap_object, InstanceType type,
|
||||
Register map) {
|
||||
LoadMap(map, heap_object);
|
||||
mov(map, FieldOperand(heap_object, HeapObject::kMapOffset));
|
||||
CmpInstanceType(map, type);
|
||||
}
|
||||
|
||||
@ -664,7 +660,7 @@ void MacroAssembler::AssertConstructor(Register object) {
|
||||
test(object, Immediate(kSmiTagMask));
|
||||
Check(not_equal, AbortReason::kOperandIsASmiAndNotAConstructor);
|
||||
Push(object);
|
||||
LoadMap(object, object);
|
||||
mov(object, FieldOperand(object, HeapObject::kMapOffset));
|
||||
test_b(FieldOperand(object, Map::kBitFieldOffset),
|
||||
Immediate(Map::IsConstructorBit::kMask));
|
||||
Pop(object);
|
||||
@ -704,7 +700,8 @@ void MacroAssembler::AssertGeneratorObject(Register object) {
|
||||
Push(object);
|
||||
Register map = object;
|
||||
|
||||
LoadMap(map, object);
|
||||
// Load map
|
||||
mov(map, FieldOperand(object, HeapObject::kMapOffset));
|
||||
|
||||
Label do_check;
|
||||
// Check if JSGeneratorObject
|
||||
@ -1283,17 +1280,15 @@ void MacroAssembler::InvokeFunction(Register fun, Register new_target,
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadGlobalProxy(Register dst) {
|
||||
LoadNativeContextSlot(dst, Context::GLOBAL_PROXY_INDEX);
|
||||
mov(dst, NativeContextOperand());
|
||||
mov(dst, ContextOperand(dst, Context::GLOBAL_PROXY_INDEX));
|
||||
}
|
||||
|
||||
void MacroAssembler::LoadNativeContextSlot(Register destination, int index) {
|
||||
void MacroAssembler::LoadGlobalFunction(int index, Register function) {
|
||||
// Load the native context from the current context.
|
||||
LoadMap(destination, esi);
|
||||
mov(destination,
|
||||
FieldOperand(destination,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
mov(function, NativeContextOperand());
|
||||
// Load the function from the native context.
|
||||
mov(destination, Operand(destination, Context::SlotOffset(index)));
|
||||
mov(function, ContextOperand(function, index));
|
||||
}
|
||||
|
||||
int MacroAssembler::SafepointRegisterStackIndex(int reg_code) {
|
||||
|
@ -103,8 +103,6 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
|
||||
|
||||
void Jump(Handle<Code> code_object, RelocInfo::Mode rmode);
|
||||
|
||||
void LoadMap(Register destination, Register object);
|
||||
|
||||
void RetpolineJump(Register reg);
|
||||
|
||||
void CallForDeoptimization(Address target, int deopt_id);
|
||||
@ -555,8 +553,8 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
|
||||
// Load the global proxy from the current context.
|
||||
void LoadGlobalProxy(Register dst);
|
||||
|
||||
// Load a value from the native context with a given index.
|
||||
void LoadNativeContextSlot(Register dst, int index);
|
||||
// Load the global function with the given index.
|
||||
void LoadGlobalFunction(int index, Register function);
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// JavaScript invokes
|
||||
@ -740,6 +738,18 @@ inline Operand FieldOperand(Register object, Register index, ScaleFactor scale,
|
||||
return Operand(object, index, scale, offset - kHeapObjectTag);
|
||||
}
|
||||
|
||||
inline Operand ContextOperand(Register context, int index) {
|
||||
return Operand(context, Context::SlotOffset(index));
|
||||
}
|
||||
|
||||
inline Operand ContextOperand(Register context, Register index) {
|
||||
return Operand(context, index, times_tagged_size, Context::SlotOffset(0));
|
||||
}
|
||||
|
||||
inline Operand NativeContextOperand() {
|
||||
return ContextOperand(esi, Context::NATIVE_CONTEXT_INDEX);
|
||||
}
|
||||
|
||||
#define ACCESS_MASM(masm) masm->
|
||||
|
||||
} // namespace internal
|
||||
|
@ -216,11 +216,6 @@ void TurboAssembler::CompareRoot(Operand with, RootIndex index) {
|
||||
}
|
||||
}
|
||||
|
||||
void TurboAssembler::LoadMap(Register destination, Register object) {
|
||||
LoadTaggedPointerField(destination,
|
||||
FieldOperand(object, HeapObject::kMapOffset));
|
||||
}
|
||||
|
||||
void TurboAssembler::LoadTaggedPointerField(Register destination,
|
||||
Operand field_operand) {
|
||||
if (COMPRESS_POINTERS_BOOL) {
|
||||
@ -2116,7 +2111,8 @@ void TurboAssembler::Ret(int bytes_dropped, Register scratch) {
|
||||
|
||||
void MacroAssembler::CmpObjectType(Register heap_object, InstanceType type,
|
||||
Register map) {
|
||||
LoadMap(map, heap_object);
|
||||
LoadTaggedPointerField(map,
|
||||
FieldOperand(heap_object, HeapObject::kMapOffset));
|
||||
CmpInstanceType(map, type);
|
||||
}
|
||||
|
||||
@ -2159,7 +2155,8 @@ void MacroAssembler::AssertConstructor(Register object) {
|
||||
testb(object, Immediate(kSmiTagMask));
|
||||
Check(not_equal, AbortReason::kOperandIsASmiAndNotAConstructor);
|
||||
Push(object);
|
||||
LoadMap(object, object);
|
||||
LoadTaggedPointerField(object,
|
||||
FieldOperand(object, HeapObject::kMapOffset));
|
||||
testb(FieldOperand(object, Map::kBitFieldOffset),
|
||||
Immediate(Map::IsConstructorBit::kMask));
|
||||
Pop(object);
|
||||
@ -2197,7 +2194,7 @@ void MacroAssembler::AssertGeneratorObject(Register object) {
|
||||
// Load map
|
||||
Register map = object;
|
||||
Push(object);
|
||||
LoadMap(map, object);
|
||||
LoadTaggedPointerField(map, FieldOperand(object, HeapObject::kMapOffset));
|
||||
|
||||
Label do_check;
|
||||
// Check if JSGeneratorObject
|
||||
@ -2730,13 +2727,8 @@ static const int kRegisterPassedArguments = 6;
|
||||
#endif
|
||||
|
||||
void MacroAssembler::LoadNativeContextSlot(int index, Register dst) {
|
||||
// Load native context.
|
||||
LoadMap(dst, rsi);
|
||||
LoadTaggedPointerField(
|
||||
dst,
|
||||
FieldOperand(dst, Map::kConstructorOrBackPointerOrNativeContextOffset));
|
||||
// Load value from native context.
|
||||
LoadTaggedPointerField(dst, Operand(dst, Context::SlotOffset(index)));
|
||||
LoadTaggedPointerField(dst, NativeContextOperand());
|
||||
LoadTaggedPointerField(dst, ContextOperand(dst, index));
|
||||
}
|
||||
|
||||
int TurboAssembler::ArgumentStackSlotsForCFunctionCall(int num_arguments) {
|
||||
|
@ -280,8 +280,6 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
|
||||
j(less, dest);
|
||||
}
|
||||
|
||||
void LoadMap(Register destination, Register object);
|
||||
|
||||
void Move(Register dst, Smi source);
|
||||
|
||||
void Move(Operand dst, Smi source) {
|
||||
@ -920,6 +918,19 @@ inline Operand FieldOperand(Register object, Register index, ScaleFactor scale,
|
||||
return Operand(object, index, scale, offset - kHeapObjectTag);
|
||||
}
|
||||
|
||||
inline Operand ContextOperand(Register context, int index) {
|
||||
return Operand(context, Context::SlotOffset(index));
|
||||
}
|
||||
|
||||
inline Operand ContextOperand(Register context, Register index) {
|
||||
return Operand(context, index, times_system_pointer_size,
|
||||
Context::SlotOffset(0));
|
||||
}
|
||||
|
||||
inline Operand NativeContextOperand() {
|
||||
return ContextOperand(rsi, Context::NATIVE_CONTEXT_INDEX);
|
||||
}
|
||||
|
||||
// Provides access to exit frame stack space (not GCed).
|
||||
inline Operand StackSpaceOperand(int index) {
|
||||
#ifdef V8_TARGET_OS_WIN
|
||||
|
@ -394,13 +394,9 @@ class ContextRef : public HeapObjectRef {
|
||||
V(JSGlobalObject, global_object) \
|
||||
V(JSGlobalProxy, global_proxy_object) \
|
||||
V(JSObject, promise_prototype) \
|
||||
V(Map, block_context_map) \
|
||||
V(Map, bound_function_with_constructor_map) \
|
||||
V(Map, bound_function_without_constructor_map) \
|
||||
V(Map, catch_context_map) \
|
||||
V(Map, eval_context_map) \
|
||||
V(Map, fast_aliased_arguments_map) \
|
||||
V(Map, function_context_map) \
|
||||
V(Map, initial_array_iterator_map) \
|
||||
V(Map, initial_string_iterator_map) \
|
||||
V(Map, iterator_result_map) \
|
||||
@ -413,7 +409,6 @@ class ContextRef : public HeapObjectRef {
|
||||
V(Map, sloppy_arguments_map) \
|
||||
V(Map, slow_object_with_null_prototype_map) \
|
||||
V(Map, strict_arguments_map) \
|
||||
V(Map, with_context_map) \
|
||||
V(ScriptContextTable, script_context_table) \
|
||||
V(SharedFunctionInfo, promise_capability_default_reject_shared_fun) \
|
||||
V(SharedFunctionInfo, promise_catch_finally_shared_fun) \
|
||||
|
@ -1198,23 +1198,26 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) {
|
||||
Node* context = NodeProperties::GetContextInput(node);
|
||||
Node* extension = jsgraph()->TheHoleConstant();
|
||||
AllocationBuilder a(jsgraph(), effect, control);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 3); // Ensure fully covered.
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered.
|
||||
int context_length = slot_count + Context::MIN_CONTEXT_SLOTS;
|
||||
Handle<Map> map;
|
||||
switch (scope_type) {
|
||||
case EVAL_SCOPE:
|
||||
a.AllocateContext(context_length, native_context().eval_context_map());
|
||||
map = factory()->eval_context_map();
|
||||
break;
|
||||
case FUNCTION_SCOPE:
|
||||
a.AllocateContext(context_length,
|
||||
native_context().function_context_map());
|
||||
map = factory()->function_context_map();
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
a.AllocateContext(context_length, MapRef(broker(), map));
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX),
|
||||
scope_info);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::PREVIOUS_INDEX), context);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), extension);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::NATIVE_CONTEXT_INDEX),
|
||||
jsgraph()->Constant(native_context()));
|
||||
for (int i = Context::MIN_CONTEXT_SLOTS; i < context_length; ++i) {
|
||||
a.Store(AccessBuilder::ForContextSlot(i), jsgraph()->UndefinedConstant());
|
||||
}
|
||||
@ -1235,12 +1238,14 @@ Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) {
|
||||
Node* context = NodeProperties::GetContextInput(node);
|
||||
|
||||
AllocationBuilder a(jsgraph(), effect, control);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 3); // Ensure fully covered.
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered.
|
||||
a.AllocateContext(Context::MIN_CONTEXT_SLOTS,
|
||||
native_context().with_context_map());
|
||||
MapRef(broker(), factory()->with_context_map()));
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX), scope_info);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::PREVIOUS_INDEX), context);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), extension);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::NATIVE_CONTEXT_INDEX),
|
||||
jsgraph()->Constant(native_context()));
|
||||
RelaxControls(node);
|
||||
a.FinishAndChange(node);
|
||||
return Changed(node);
|
||||
@ -1256,12 +1261,14 @@ Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) {
|
||||
Node* extension = jsgraph()->TheHoleConstant();
|
||||
|
||||
AllocationBuilder a(jsgraph(), effect, control);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 3); // Ensure fully covered.
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered.
|
||||
a.AllocateContext(Context::MIN_CONTEXT_SLOTS + 1,
|
||||
native_context().catch_context_map());
|
||||
MapRef(broker(), factory()->catch_context_map()));
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX), scope_info);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::PREVIOUS_INDEX), context);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), extension);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::NATIVE_CONTEXT_INDEX),
|
||||
jsgraph()->Constant(native_context()));
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::THROWN_OBJECT_INDEX),
|
||||
exception);
|
||||
RelaxControls(node);
|
||||
@ -1283,12 +1290,15 @@ Reduction JSCreateLowering::ReduceJSCreateBlockContext(Node* node) {
|
||||
Node* extension = jsgraph()->TheHoleConstant();
|
||||
|
||||
AllocationBuilder a(jsgraph(), effect, control);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 3); // Ensure fully covered.
|
||||
a.AllocateContext(context_length, native_context().block_context_map());
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered.
|
||||
a.AllocateContext(context_length,
|
||||
MapRef(broker(), factory()->block_context_map()));
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX),
|
||||
scope_info);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::PREVIOUS_INDEX), context);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), extension);
|
||||
a.Store(AccessBuilder::ForContextSlot(Context::NATIVE_CONTEXT_INDEX),
|
||||
jsgraph()->Constant(native_context()));
|
||||
for (int i = Context::MIN_CONTEXT_SLOTS; i < context_length; ++i) {
|
||||
a.Store(AccessBuilder::ForContextSlot(i), jsgraph()->UndefinedConstant());
|
||||
}
|
||||
|
@ -1955,7 +1955,6 @@ void MapData::SerializeConstructor(JSHeapBroker* broker) {
|
||||
|
||||
TraceScope tracer(broker, this, "MapData::SerializeConstructor");
|
||||
Handle<Map> map = Handle<Map>::cast(object());
|
||||
DCHECK(!map->IsContextMap());
|
||||
DCHECK_NULL(constructor_);
|
||||
constructor_ = broker->GetOrCreateData(map->GetConstructor());
|
||||
}
|
||||
@ -1967,7 +1966,6 @@ void MapData::SerializeBackPointer(JSHeapBroker* broker) {
|
||||
TraceScope tracer(broker, this, "MapData::SerializeBackPointer");
|
||||
Handle<Map> map = Handle<Map>::cast(object());
|
||||
DCHECK_NULL(backpointer_);
|
||||
DCHECK(!map->IsContextMap());
|
||||
backpointer_ = broker->GetOrCreateData(map->GetBackPointer())->AsHeapObject();
|
||||
}
|
||||
|
||||
@ -2541,16 +2539,20 @@ void JSHeapBroker::InitializeAndStartSerializing(
|
||||
Factory* const f = isolate()->factory();
|
||||
GetOrCreateData(f->arguments_marker_map());
|
||||
GetOrCreateData(f->bigint_string());
|
||||
GetOrCreateData(f->block_context_map());
|
||||
GetOrCreateData(f->boolean_map());
|
||||
GetOrCreateData(f->boolean_string());
|
||||
GetOrCreateData(f->catch_context_map());
|
||||
GetOrCreateData(f->empty_fixed_array());
|
||||
GetOrCreateData(f->empty_string());
|
||||
GetOrCreateData(f->eval_context_map());
|
||||
GetOrCreateData(f->exec_string());
|
||||
GetOrCreateData(f->false_string());
|
||||
GetOrCreateData(f->false_value());
|
||||
GetOrCreateData(f->fixed_array_map());
|
||||
GetOrCreateData(f->fixed_cow_array_map());
|
||||
GetOrCreateData(f->fixed_double_array_map());
|
||||
GetOrCreateData(f->function_context_map());
|
||||
GetOrCreateData(f->function_string());
|
||||
GetOrCreateData(f->has_instance_symbol());
|
||||
GetOrCreateData(f->heap_number_map());
|
||||
@ -2587,6 +2589,7 @@ void JSHeapBroker::InitializeAndStartSerializing(
|
||||
GetOrCreateData(f->undefined_string());
|
||||
GetOrCreateData(f->undefined_value());
|
||||
GetOrCreateData(f->uninitialized_map());
|
||||
GetOrCreateData(f->with_context_map());
|
||||
GetOrCreateData(f->zero_string());
|
||||
// - Cells
|
||||
GetOrCreateData(f->array_buffer_detaching_protector())
|
||||
@ -3911,14 +3914,11 @@ void NativeContextData::Serialize(JSHeapBroker* broker) {
|
||||
TraceScope tracer(broker, this, "NativeContextData::Serialize");
|
||||
Handle<NativeContext> context = Handle<NativeContext>::cast(object());
|
||||
|
||||
#define SERIALIZE_MEMBER(type, name) \
|
||||
DCHECK_NULL(name##_); \
|
||||
name##_ = broker->GetOrCreateData(context->name())->As##type(); \
|
||||
if (name##_->IsJSFunction()) name##_->AsJSFunction()->Serialize(broker); \
|
||||
if (name##_->IsMap() && \
|
||||
!InstanceTypeChecker::IsContext(name##_->AsMap()->instance_type())) { \
|
||||
name##_->AsMap()->SerializeConstructor(broker); \
|
||||
}
|
||||
#define SERIALIZE_MEMBER(type, name) \
|
||||
DCHECK_NULL(name##_); \
|
||||
name##_ = broker->GetOrCreateData(context->name())->As##type(); \
|
||||
if (name##_->IsJSFunction()) name##_->AsJSFunction()->Serialize(broker); \
|
||||
if (name##_->IsMap()) name##_->AsMap()->SerializeConstructor(broker);
|
||||
BROKER_COMPULSORY_NATIVE_CONTEXT_FIELDS(SERIALIZE_MEMBER)
|
||||
if (!broker->isolate()->bootstrapper()->IsActive()) {
|
||||
BROKER_OPTIONAL_NATIVE_CONTEXT_FIELDS(SERIALIZE_MEMBER)
|
||||
|
@ -92,6 +92,8 @@ Reduction JSNativeContextSpecialization::Reduce(Node* node) {
|
||||
return ReduceJSPromiseResolve(node);
|
||||
case IrOpcode::kJSResolvePromise:
|
||||
return ReduceJSResolvePromise(node);
|
||||
case IrOpcode::kJSLoadContext:
|
||||
return ReduceJSLoadContext(node);
|
||||
case IrOpcode::kJSLoadGlobal:
|
||||
return ReduceJSLoadGlobal(node);
|
||||
case IrOpcode::kJSStoreGlobal:
|
||||
@ -742,6 +744,20 @@ Reduction JSNativeContextSpecialization::ReduceJSResolvePromise(Node* node) {
|
||||
return Replace(value);
|
||||
}
|
||||
|
||||
Reduction JSNativeContextSpecialization::ReduceJSLoadContext(Node* node) {
|
||||
DCHECK_EQ(IrOpcode::kJSLoadContext, node->opcode());
|
||||
ContextAccess const& access = ContextAccessOf(node->op());
|
||||
// Specialize JSLoadContext(NATIVE_CONTEXT_INDEX) to the known native
|
||||
// context (if any), so we can constant-fold those fields, which is
|
||||
// safe, since the NATIVE_CONTEXT_INDEX slot is always immutable.
|
||||
if (access.index() == Context::NATIVE_CONTEXT_INDEX) {
|
||||
Node* value = jsgraph()->Constant(native_context());
|
||||
ReplaceWithValue(node, value);
|
||||
return Replace(value);
|
||||
}
|
||||
return NoChange();
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
FieldAccess ForPropertyCellValue(MachineRepresentation representation,
|
||||
|
@ -79,6 +79,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final
|
||||
Reduction ReduceJSOrdinaryHasInstance(Node* node);
|
||||
Reduction ReduceJSPromiseResolve(Node* node);
|
||||
Reduction ReduceJSResolvePromise(Node* node);
|
||||
Reduction ReduceJSLoadContext(Node* node);
|
||||
Reduction ReduceJSLoadGlobal(Node* node);
|
||||
Reduction ReduceJSStoreGlobal(Node* node);
|
||||
Reduction ReduceJSLoadNamed(Node* node);
|
||||
|
@ -1480,6 +1480,7 @@ Type Typer::Visitor::TypeJSLoadContext(Node* node) {
|
||||
ContextAccess const& access = ContextAccessOf(node->op());
|
||||
switch (access.index()) {
|
||||
case Context::PREVIOUS_INDEX:
|
||||
case Context::NATIVE_CONTEXT_INDEX:
|
||||
case Context::SCOPE_INFO_INDEX:
|
||||
return Type::OtherInternal();
|
||||
default:
|
||||
|
@ -1111,16 +1111,19 @@ class DebugInfoSection : public DebugSection {
|
||||
}
|
||||
|
||||
// See contexts.h for more information.
|
||||
DCHECK_EQ(Context::MIN_CONTEXT_SLOTS, 3);
|
||||
DCHECK_EQ(Context::MIN_CONTEXT_SLOTS, 4);
|
||||
DCHECK_EQ(Context::SCOPE_INFO_INDEX, 0);
|
||||
DCHECK_EQ(Context::PREVIOUS_INDEX, 1);
|
||||
DCHECK_EQ(Context::EXTENSION_INDEX, 2);
|
||||
DCHECK_EQ(Context::NATIVE_CONTEXT_INDEX, 3);
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
w->WriteString(".scope_info");
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
w->WriteString(".previous");
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
w->WriteString(".extension");
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
w->WriteString(".native_context");
|
||||
|
||||
for (int context_slot = 0; context_slot < context_slots; ++context_slot) {
|
||||
w->WriteULEB128(current_abbreviation++);
|
||||
|
@ -652,12 +652,8 @@ void Map::MapVerify(Isolate* isolate) {
|
||||
CHECK(instance_size() == kVariableSizeSentinel ||
|
||||
(kTaggedSize <= instance_size() &&
|
||||
static_cast<size_t>(instance_size()) < heap->Capacity()));
|
||||
if (IsContextMap()) {
|
||||
CHECK(native_context().IsNativeContext());
|
||||
} else {
|
||||
CHECK_IMPLIES(!GetBackPointer().IsUndefined(isolate),
|
||||
!Map::cast(GetBackPointer()).is_stable());
|
||||
}
|
||||
CHECK(GetBackPointer().IsUndefined(isolate) ||
|
||||
!Map::cast(GetBackPointer()).is_stable());
|
||||
SLOW_DCHECK(instance_descriptors().IsSortedNoDuplicates());
|
||||
DisallowHeapAllocation no_gc;
|
||||
SLOW_DCHECK(
|
||||
|
@ -2543,9 +2543,7 @@ void Map::MapPrint(std::ostream& os) { // NOLINT
|
||||
}
|
||||
if (is_access_check_needed()) os << "\n - access_check_needed";
|
||||
if (!is_extensible()) os << "\n - non-extensible";
|
||||
if (IsContextMap()) {
|
||||
os << "\n - native context: " << Brief(native_context());
|
||||
} else if (is_prototype_map()) {
|
||||
if (is_prototype_map()) {
|
||||
os << "\n - prototype_map";
|
||||
os << "\n - prototype info: " << Brief(prototype_info());
|
||||
} else {
|
||||
@ -2582,9 +2580,7 @@ void Map::MapPrint(std::ostream& os) { // NOLINT
|
||||
}
|
||||
}
|
||||
os << "\n - prototype: " << Brief(prototype());
|
||||
if (!IsContextMap()) {
|
||||
os << "\n - constructor: " << Brief(GetConstructor());
|
||||
}
|
||||
os << "\n - constructor: " << Brief(GetConstructor());
|
||||
os << "\n - dependent code: " << Brief(dependent_code());
|
||||
os << "\n - construction counter: " << construction_counter();
|
||||
os << "\n";
|
||||
|
@ -1410,20 +1410,20 @@ Handle<Symbol> Factory::NewPrivateNameSymbol(Handle<String> name) {
|
||||
return symbol;
|
||||
}
|
||||
|
||||
Handle<Context> Factory::NewContext(Handle<Map> map, int size,
|
||||
Handle<Context> Factory::NewContext(RootIndex map_root_index, int size,
|
||||
int variadic_part_length,
|
||||
AllocationType allocation) {
|
||||
DCHECK(RootsTable::IsImmortalImmovable(map_root_index));
|
||||
DCHECK_LE(Context::kTodoHeaderSize, size);
|
||||
DCHECK(IsAligned(size, kTaggedSize));
|
||||
DCHECK_LE(Context::MIN_CONTEXT_SLOTS, variadic_part_length);
|
||||
DCHECK_LE(Context::SizeFor(variadic_part_length), size);
|
||||
|
||||
HeapObject result =
|
||||
isolate()->heap()->AllocateRawWith<Heap::kRetryOrFail>(size, allocation);
|
||||
result.set_map_after_allocation(*map);
|
||||
Map map = Map::cast(isolate()->root(map_root_index));
|
||||
HeapObject result = AllocateRawWithImmortalMap(size, allocation, map);
|
||||
Handle<Context> context(Context::cast(result), isolate());
|
||||
context->initialize_length_and_extension_bit(variadic_part_length);
|
||||
DCHECK_EQ(context->SizeFromMap(*map), size);
|
||||
DCHECK_EQ(context->SizeFromMap(map), size);
|
||||
if (size > Context::kTodoHeaderSize) {
|
||||
ObjectSlot start = context->RawField(Context::kTodoHeaderSize);
|
||||
ObjectSlot end = context->RawField(size);
|
||||
@ -1434,15 +1434,13 @@ Handle<Context> Factory::NewContext(Handle<Map> map, int size,
|
||||
}
|
||||
|
||||
Handle<NativeContext> Factory::NewNativeContext() {
|
||||
Handle<Map> map = NewMap(NATIVE_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
Handle<NativeContext> context = Handle<NativeContext>::cast(
|
||||
NewContext(map, NativeContext::kSize, NativeContext::NATIVE_CONTEXT_SLOTS,
|
||||
AllocationType::kOld));
|
||||
context->set_native_context_map(*map);
|
||||
map->set_native_context(*context);
|
||||
NewContext(RootIndex::kNativeContextMap, NativeContext::kSize,
|
||||
NativeContext::NATIVE_CONTEXT_SLOTS, AllocationType::kOld));
|
||||
context->set_scope_info(ReadOnlyRoots(isolate()).empty_scope_info());
|
||||
context->set_previous(Context::unchecked_cast(Smi::zero()));
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(*context);
|
||||
context->set_errors_thrown(Smi::zero());
|
||||
context->set_math_random_index(Smi::zero());
|
||||
context->set_serialized_objects(*empty_fixed_array());
|
||||
@ -1456,11 +1454,12 @@ Handle<Context> Factory::NewScriptContext(Handle<NativeContext> outer,
|
||||
DCHECK_EQ(scope_info->scope_type(), SCRIPT_SCOPE);
|
||||
int variadic_part_length = scope_info->ContextLength();
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->script_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kScriptContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kOld);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*outer);
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(*outer);
|
||||
DCHECK(context->IsScriptContext());
|
||||
return context;
|
||||
}
|
||||
@ -1479,35 +1478,37 @@ Handle<Context> Factory::NewModuleContext(Handle<SourceTextModule> module,
|
||||
DCHECK_EQ(scope_info->scope_type(), MODULE_SCOPE);
|
||||
int variadic_part_length = scope_info->ContextLength();
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->module_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kModuleContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kOld);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*outer);
|
||||
context->set_extension(*module);
|
||||
context->set_native_context(*outer);
|
||||
DCHECK(context->IsModuleContext());
|
||||
return context;
|
||||
}
|
||||
|
||||
Handle<Context> Factory::NewFunctionContext(Handle<Context> outer,
|
||||
Handle<ScopeInfo> scope_info) {
|
||||
Handle<Map> map;
|
||||
RootIndex mapRootIndex;
|
||||
switch (scope_info->scope_type()) {
|
||||
case EVAL_SCOPE:
|
||||
map = isolate()->eval_context_map();
|
||||
mapRootIndex = RootIndex::kEvalContextMap;
|
||||
break;
|
||||
case FUNCTION_SCOPE:
|
||||
map = isolate()->function_context_map();
|
||||
mapRootIndex = RootIndex::kFunctionContextMap;
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
int variadic_part_length = scope_info->ContextLength();
|
||||
Handle<Context> context =
|
||||
NewContext(map, Context::SizeFor(variadic_part_length),
|
||||
NewContext(mapRootIndex, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*outer);
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(outer->native_context());
|
||||
return context;
|
||||
}
|
||||
|
||||
@ -1519,11 +1520,12 @@ Handle<Context> Factory::NewCatchContext(Handle<Context> previous,
|
||||
// TODO(ishell): Take the details from CatchContext class.
|
||||
int variadic_part_length = Context::MIN_CONTEXT_SLOTS + 1;
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->catch_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kCatchContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*previous);
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(previous->native_context());
|
||||
context->set(Context::THROWN_OBJECT_INDEX, *thrown_object);
|
||||
return context;
|
||||
}
|
||||
@ -1540,11 +1542,12 @@ Handle<Context> Factory::NewDebugEvaluateContext(Handle<Context> previous,
|
||||
: Handle<HeapObject>::cast(extension);
|
||||
// TODO(ishell): Take the details from DebugEvaluateContextContext class.
|
||||
int variadic_part_length = Context::MIN_CONTEXT_SLOTS + 2;
|
||||
Handle<Context> c = NewContext(isolate()->debug_evaluate_context_map(),
|
||||
Handle<Context> c = NewContext(RootIndex::kDebugEvaluateContextMap,
|
||||
Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
c->set_scope_info(*scope_info);
|
||||
c->set_previous(*previous);
|
||||
c->set_native_context(previous->native_context());
|
||||
c->set_extension(*ext);
|
||||
if (!wrapped.is_null()) c->set(Context::WRAPPED_CONTEXT_INDEX, *wrapped);
|
||||
if (!blacklist.is_null()) c->set(Context::BLACK_LIST_INDEX, *blacklist);
|
||||
@ -1558,11 +1561,12 @@ Handle<Context> Factory::NewWithContext(Handle<Context> previous,
|
||||
// TODO(ishell): Take the details from WithContext class.
|
||||
int variadic_part_length = Context::MIN_CONTEXT_SLOTS;
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->with_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kWithContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*previous);
|
||||
context->set_extension(*extension);
|
||||
context->set_native_context(previous->native_context());
|
||||
return context;
|
||||
}
|
||||
|
||||
@ -1572,11 +1576,12 @@ Handle<Context> Factory::NewBlockContext(Handle<Context> previous,
|
||||
scope_info->scope_type() == CLASS_SCOPE);
|
||||
int variadic_part_length = scope_info->ContextLength();
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->block_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kBlockContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
context->set_scope_info(*scope_info);
|
||||
context->set_previous(*previous);
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(previous->native_context());
|
||||
return context;
|
||||
}
|
||||
|
||||
@ -1584,11 +1589,12 @@ Handle<Context> Factory::NewBuiltinContext(Handle<NativeContext> native_context,
|
||||
int variadic_part_length) {
|
||||
DCHECK_LE(Context::MIN_CONTEXT_SLOTS, variadic_part_length);
|
||||
Handle<Context> context = NewContext(
|
||||
isolate()->function_context_map(), Context::SizeFor(variadic_part_length),
|
||||
RootIndex::kFunctionContextMap, Context::SizeFor(variadic_part_length),
|
||||
variadic_part_length, AllocationType::kYoung);
|
||||
context->set_scope_info(ReadOnlyRoots(isolate()).empty_scope_info());
|
||||
context->set_previous(*native_context);
|
||||
context->set_extension(*the_hole_value());
|
||||
context->set_native_context(*native_context);
|
||||
return context;
|
||||
}
|
||||
|
||||
|
@ -1025,7 +1025,7 @@ class V8_EXPORT_PRIVATE Factory {
|
||||
// Allocates new context with given map, sets length and initializes the
|
||||
// after-header part with uninitialized values and leaves the context header
|
||||
// uninitialized.
|
||||
Handle<Context> NewContext(Handle<Map> map, int size,
|
||||
Handle<Context> NewContext(RootIndex map_root_index, int size,
|
||||
int variadic_part_length,
|
||||
AllocationType allocation);
|
||||
|
||||
|
@ -455,6 +455,16 @@ bool Heap::CreateInitialMaps() {
|
||||
|
||||
ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, array_list)
|
||||
|
||||
ALLOCATE_VARSIZE_MAP(FUNCTION_CONTEXT_TYPE, function_context)
|
||||
ALLOCATE_VARSIZE_MAP(CATCH_CONTEXT_TYPE, catch_context)
|
||||
ALLOCATE_VARSIZE_MAP(WITH_CONTEXT_TYPE, with_context)
|
||||
ALLOCATE_VARSIZE_MAP(DEBUG_EVALUATE_CONTEXT_TYPE, debug_evaluate_context)
|
||||
ALLOCATE_VARSIZE_MAP(AWAIT_CONTEXT_TYPE, await_context)
|
||||
ALLOCATE_VARSIZE_MAP(BLOCK_CONTEXT_TYPE, block_context)
|
||||
ALLOCATE_VARSIZE_MAP(MODULE_CONTEXT_TYPE, module_context)
|
||||
ALLOCATE_VARSIZE_MAP(NATIVE_CONTEXT_TYPE, native_context)
|
||||
ALLOCATE_VARSIZE_MAP(EVAL_CONTEXT_TYPE, eval_context)
|
||||
ALLOCATE_VARSIZE_MAP(SCRIPT_CONTEXT_TYPE, script_context)
|
||||
ALLOCATE_VARSIZE_MAP(SCRIPT_CONTEXT_TABLE_TYPE, script_context_table)
|
||||
|
||||
ALLOCATE_VARSIZE_MAP(OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
|
||||
|
@ -1170,7 +1170,6 @@ void Genesis::CreateRoots() {
|
||||
// and the global object, but in order to create those, we need the
|
||||
// native context).
|
||||
native_context_ = factory()->NewNativeContext();
|
||||
|
||||
AddToWeakNativeContextList(isolate(), *native_context());
|
||||
isolate()->set_context(*native_context());
|
||||
|
||||
@ -1439,49 +1438,10 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
||||
|
||||
Factory* factory = isolate_->factory();
|
||||
|
||||
{ // -- C o n t e x t
|
||||
Handle<Map> map =
|
||||
factory->NewMap(FUNCTION_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_function_context_map(*map);
|
||||
|
||||
map = factory->NewMap(CATCH_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_catch_context_map(*map);
|
||||
|
||||
map = factory->NewMap(WITH_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_with_context_map(*map);
|
||||
|
||||
map = factory->NewMap(DEBUG_EVALUATE_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_debug_evaluate_context_map(*map);
|
||||
|
||||
map = factory->NewMap(BLOCK_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_block_context_map(*map);
|
||||
|
||||
map = factory->NewMap(MODULE_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_module_context_map(*map);
|
||||
|
||||
map = factory->NewMap(AWAIT_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_await_context_map(*map);
|
||||
|
||||
map = factory->NewMap(SCRIPT_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_script_context_map(*map);
|
||||
|
||||
map = factory->NewMap(EVAL_CONTEXT_TYPE, kVariableSizeSentinel);
|
||||
map->set_native_context(*native_context());
|
||||
native_context()->set_eval_context_map(*map);
|
||||
|
||||
Handle<ScriptContextTable> script_context_table =
|
||||
factory->NewScriptContextTable();
|
||||
native_context()->set_script_context_table(*script_context_table);
|
||||
InstallGlobalThisBinding();
|
||||
}
|
||||
Handle<ScriptContextTable> script_context_table =
|
||||
factory->NewScriptContextTable();
|
||||
native_context()->set_script_context_table(*script_context_table);
|
||||
InstallGlobalThisBinding();
|
||||
|
||||
{ // --- O b j e c t ---
|
||||
Handle<String> object_name = factory->Object_string();
|
||||
|
@ -130,7 +130,13 @@ void Context::set_extension(HeapObject object) {
|
||||
}
|
||||
|
||||
NativeContext Context::native_context() const {
|
||||
return this->map().native_context();
|
||||
Object result = get(NATIVE_CONTEXT_INDEX);
|
||||
DCHECK(IsBootstrappingOrNativeContext(this->GetIsolate(), result));
|
||||
return NativeContext::unchecked_cast(result);
|
||||
}
|
||||
|
||||
void Context::set_native_context(NativeContext context) {
|
||||
set(NATIVE_CONTEXT_INDEX, context);
|
||||
}
|
||||
|
||||
bool Context::IsFunctionContext() const {
|
||||
|
@ -445,6 +445,13 @@ int Context::IntrinsicIndexForName(const unsigned char* unsigned_string,
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
bool Context::IsBootstrappingOrNativeContext(Isolate* isolate, Object object) {
|
||||
// During bootstrapping we allow all objects to pass as global
|
||||
// objects. This is necessary to fix circular dependencies.
|
||||
return isolate->heap()->gc_state() != Heap::NOT_IN_GC ||
|
||||
isolate->bootstrapper()->IsActive() || object.IsNativeContext();
|
||||
}
|
||||
|
||||
bool Context::IsBootstrappingOrValidParentContext(Object object,
|
||||
Context child) {
|
||||
// During bootstrapping we allow all objects to pass as
|
||||
@ -467,13 +474,15 @@ void NativeContext::IncrementErrorsThrown() {
|
||||
|
||||
int NativeContext::GetErrorsThrown() { return errors_thrown().value(); }
|
||||
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 3);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4);
|
||||
STATIC_ASSERT(NativeContext::kScopeInfoOffset ==
|
||||
Context::OffsetOfElementAt(NativeContext::SCOPE_INFO_INDEX));
|
||||
STATIC_ASSERT(NativeContext::kPreviousOffset ==
|
||||
Context::OffsetOfElementAt(NativeContext::PREVIOUS_INDEX));
|
||||
STATIC_ASSERT(NativeContext::kExtensionOffset ==
|
||||
Context::OffsetOfElementAt(NativeContext::EXTENSION_INDEX));
|
||||
STATIC_ASSERT(NativeContext::kNativeContextOffset ==
|
||||
Context::OffsetOfElementAt(NativeContext::NATIVE_CONTEXT_INDEX));
|
||||
|
||||
STATIC_ASSERT(NativeContext::kStartOfStrongFieldsOffset ==
|
||||
Context::OffsetOfElementAt(-1));
|
||||
|
@ -194,17 +194,6 @@ enum ContextLookupFlags {
|
||||
V(JS_WEAK_REF_FUNCTION_INDEX, JSFunction, js_weak_ref_fun) \
|
||||
V(JS_FINALIZATION_GROUP_FUNCTION_INDEX, JSFunction, \
|
||||
js_finalization_group_fun) \
|
||||
/* Context maps */ \
|
||||
V(NATIVE_CONTEXT_MAP_INDEX, Map, native_context_map) \
|
||||
V(FUNCTION_CONTEXT_MAP_INDEX, Map, function_context_map) \
|
||||
V(MODULE_CONTEXT_MAP_INDEX, Map, module_context_map) \
|
||||
V(EVAL_CONTEXT_MAP_INDEX, Map, eval_context_map) \
|
||||
V(SCRIPT_CONTEXT_MAP_INDEX, Map, script_context_map) \
|
||||
V(AWAIT_CONTEXT_MAP_INDEX, Map, await_context_map) \
|
||||
V(BLOCK_CONTEXT_MAP_INDEX, Map, block_context_map) \
|
||||
V(CATCH_CONTEXT_MAP_INDEX, Map, catch_context_map) \
|
||||
V(WITH_CONTEXT_MAP_INDEX, Map, with_context_map) \
|
||||
V(DEBUG_EVALUATE_CONTEXT_MAP_INDEX, Map, debug_evaluate_context_map) \
|
||||
V(MAP_CACHE_INDEX, Object, map_cache) \
|
||||
V(MAP_KEY_ITERATOR_MAP_INDEX, Map, map_key_iterator_map) \
|
||||
V(MAP_KEY_VALUE_ITERATOR_MAP_INDEX, Map, map_key_value_iterator_map) \
|
||||
@ -524,6 +513,7 @@ class Context : public HeapObject {
|
||||
SCOPE_INFO_INDEX,
|
||||
PREVIOUS_INDEX,
|
||||
EXTENSION_INDEX,
|
||||
NATIVE_CONTEXT_INDEX,
|
||||
|
||||
// These slots are only in native contexts.
|
||||
#define NATIVE_CONTEXT_SLOT(index, type, name) index,
|
||||
@ -599,6 +589,7 @@ class Context : public HeapObject {
|
||||
|
||||
// Compute the native context.
|
||||
inline NativeContext native_context() const;
|
||||
inline void set_native_context(NativeContext context);
|
||||
|
||||
// Predicates for context types. IsNativeContext is already defined on
|
||||
// Object.
|
||||
@ -676,6 +667,8 @@ class Context : public HeapObject {
|
||||
private:
|
||||
#ifdef DEBUG
|
||||
// Bootstrapping-aware type checks.
|
||||
V8_EXPORT_PRIVATE static bool IsBootstrappingOrNativeContext(Isolate* isolate,
|
||||
Object object);
|
||||
static bool IsBootstrappingOrValidParentContext(Object object, Context kid);
|
||||
#endif
|
||||
|
||||
|
@ -729,12 +729,8 @@ Map Map::ElementsTransitionMap(Isolate* isolate) {
|
||||
|
||||
ACCESSORS(Map, dependent_code, DependentCode, kDependentCodeOffset)
|
||||
ACCESSORS(Map, prototype_validity_cell, Object, kPrototypeValidityCellOffset)
|
||||
ACCESSORS_CHECKED2(Map, constructor_or_backpointer, Object,
|
||||
kConstructorOrBackPointerOrNativeContextOffset,
|
||||
!IsContextMap(), value.IsNull() || !IsContextMap())
|
||||
ACCESSORS_CHECKED(Map, native_context, NativeContext,
|
||||
kConstructorOrBackPointerOrNativeContextOffset,
|
||||
IsContextMap())
|
||||
ACCESSORS(Map, constructor_or_backpointer, Object,
|
||||
kConstructorOrBackPointerOffset)
|
||||
|
||||
bool Map::IsPrototypeValidityCellValid() const {
|
||||
Object validity_cell = prototype_validity_cell();
|
||||
|
@ -105,86 +105,86 @@ using MapHandles = std::vector<Handle<Map>>;
|
||||
// - How to iterate over an object (for garbage collection)
|
||||
//
|
||||
// Map layout:
|
||||
// +---------------+------------------------------------------------+
|
||||
// | _ Type _ | _ Description _ |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | TaggedPointer | map - Always a pointer to the MetaMap root |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | Int | The first int field |
|
||||
// `---+----------+------------------------------------------------+
|
||||
// | Byte | [instance_size] |
|
||||
// +----------+------------------------------------------------+
|
||||
// | Byte | If Map for a primitive type: |
|
||||
// | | native context index for constructor fn |
|
||||
// | | If Map for an Object type: |
|
||||
// | | inobject properties start offset in words |
|
||||
// +----------+------------------------------------------------+
|
||||
// | Byte | [used_or_unused_instance_size_in_words] |
|
||||
// | | For JSObject in fast mode this byte encodes |
|
||||
// | | the size of the object that includes only |
|
||||
// | | the used property fields or the slack size |
|
||||
// | | in properties backing store. |
|
||||
// +----------+------------------------------------------------+
|
||||
// | Byte | [visitor_id] |
|
||||
// +----+----------+------------------------------------------------+
|
||||
// | Int | The second int field |
|
||||
// `---+----------+------------------------------------------------+
|
||||
// | Short | [instance_type] |
|
||||
// +----------+------------------------------------------------+
|
||||
// | Byte | [bit_field] |
|
||||
// | | - has_non_instance_prototype (bit 0) |
|
||||
// | | - is_callable (bit 1) |
|
||||
// | | - has_named_interceptor (bit 2) |
|
||||
// | | - has_indexed_interceptor (bit 3) |
|
||||
// | | - is_undetectable (bit 4) |
|
||||
// | | - is_access_check_needed (bit 5) |
|
||||
// | | - is_constructor (bit 6) |
|
||||
// | | - has_prototype_slot (bit 7) |
|
||||
// +----------+------------------------------------------------+
|
||||
// | Byte | [bit_field2] |
|
||||
// | | - new_target_is_base (bit 0) |
|
||||
// | | - is_immutable_proto (bit 1) |
|
||||
// | | - unused bit (bit 2) |
|
||||
// | | - elements_kind (bits 3..7) |
|
||||
// +----+----------+------------------------------------------------+
|
||||
// | Int | [bit_field3] |
|
||||
// | | - enum_length (bit 0..9) |
|
||||
// | | - number_of_own_descriptors (bit 10..19) |
|
||||
// | | - is_prototype_map (bit 20) |
|
||||
// | | - is_dictionary_map (bit 21) |
|
||||
// | | - owns_descriptors (bit 22) |
|
||||
// | | - is_in_retained_map_list (bit 23) |
|
||||
// | | - is_deprecated (bit 24) |
|
||||
// | | - is_unstable (bit 25) |
|
||||
// | | - is_migration_target (bit 26) |
|
||||
// | | - is_extensible (bit 28) |
|
||||
// | | - may_have_interesting_symbols (bit 28) |
|
||||
// | | - construction_counter (bit 29..31) |
|
||||
// | | |
|
||||
// +****************************************************************+
|
||||
// | Int | On systems with 64bit pointer types, there |
|
||||
// | | is an unused 32bits after bit_field3 |
|
||||
// +****************************************************************+
|
||||
// | TaggedPointer | [prototype] |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | TaggedPointer | [constructor_or_backpointer_or_native_context] |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | TaggedPointer | [instance_descriptors] |
|
||||
// +****************************************************************+
|
||||
// ! TaggedPointer ! [layout_descriptors] !
|
||||
// ! ! Field is only present if compile-time flag !
|
||||
// ! ! FLAG_unbox_double_fields is enabled !
|
||||
// ! ! (basically on 64 bit architectures) !
|
||||
// +****************************************************************+
|
||||
// | TaggedPointer | [dependent_code] |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | TaggedPointer | [prototype_validity_cell] |
|
||||
// +---------------+------------------------------------------------+
|
||||
// | TaggedPointer | If Map is a prototype map: |
|
||||
// | | [prototype_info] |
|
||||
// | | Else: |
|
||||
// | | [raw_transitions] |
|
||||
// +---------------+------------------------------------------------+
|
||||
// +---------------+---------------------------------------------+
|
||||
// | _ Type _ | _ Description _ |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | TaggedPointer | map - Always a pointer to the MetaMap root |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | Int | The first int field |
|
||||
// `---+----------+---------------------------------------------+
|
||||
// | Byte | [instance_size] |
|
||||
// +----------+---------------------------------------------+
|
||||
// | Byte | If Map for a primitive type: |
|
||||
// | | native context index for constructor fn |
|
||||
// | | If Map for an Object type: |
|
||||
// | | inobject properties start offset in words |
|
||||
// +----------+---------------------------------------------+
|
||||
// | Byte | [used_or_unused_instance_size_in_words] |
|
||||
// | | For JSObject in fast mode this byte encodes |
|
||||
// | | the size of the object that includes only |
|
||||
// | | the used property fields or the slack size |
|
||||
// | | in properties backing store. |
|
||||
// +----------+---------------------------------------------+
|
||||
// | Byte | [visitor_id] |
|
||||
// +----+----------+---------------------------------------------+
|
||||
// | Int | The second int field |
|
||||
// `---+----------+---------------------------------------------+
|
||||
// | Short | [instance_type] |
|
||||
// +----------+---------------------------------------------+
|
||||
// | Byte | [bit_field] |
|
||||
// | | - has_non_instance_prototype (bit 0) |
|
||||
// | | - is_callable (bit 1) |
|
||||
// | | - has_named_interceptor (bit 2) |
|
||||
// | | - has_indexed_interceptor (bit 3) |
|
||||
// | | - is_undetectable (bit 4) |
|
||||
// | | - is_access_check_needed (bit 5) |
|
||||
// | | - is_constructor (bit 6) |
|
||||
// | | - has_prototype_slot (bit 7) |
|
||||
// +----------+---------------------------------------------+
|
||||
// | Byte | [bit_field2] |
|
||||
// | | - new_target_is_base (bit 0) |
|
||||
// | | - is_immutable_proto (bit 1) |
|
||||
// | | - unused bit (bit 2) |
|
||||
// | | - elements_kind (bits 3..7) |
|
||||
// +----+----------+---------------------------------------------+
|
||||
// | Int | [bit_field3] |
|
||||
// | | - enum_length (bit 0..9) |
|
||||
// | | - number_of_own_descriptors (bit 10..19) |
|
||||
// | | - is_prototype_map (bit 20) |
|
||||
// | | - is_dictionary_map (bit 21) |
|
||||
// | | - owns_descriptors (bit 22) |
|
||||
// | | - is_in_retained_map_list (bit 23) |
|
||||
// | | - is_deprecated (bit 24) |
|
||||
// | | - is_unstable (bit 25) |
|
||||
// | | - is_migration_target (bit 26) |
|
||||
// | | - is_extensible (bit 28) |
|
||||
// | | - may_have_interesting_symbols (bit 28) |
|
||||
// | | - construction_counter (bit 29..31) |
|
||||
// | | |
|
||||
// +*************************************************************+
|
||||
// | Int | On systems with 64bit pointer types, there |
|
||||
// | | is an unused 32bits after bit_field3 |
|
||||
// +*************************************************************+
|
||||
// | TaggedPointer | [prototype] |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | TaggedPointer | [constructor_or_backpointer] |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | TaggedPointer | [instance_descriptors] |
|
||||
// +*************************************************************+
|
||||
// ! TaggedPointer ! [layout_descriptors] !
|
||||
// ! ! Field is only present if compile-time flag !
|
||||
// ! ! FLAG_unbox_double_fields is enabled !
|
||||
// ! ! (basically on 64 bit architectures) !
|
||||
// +*************************************************************+
|
||||
// | TaggedPointer | [dependent_code] |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | TaggedPointer | [prototype_validity_cell] |
|
||||
// +---------------+---------------------------------------------+
|
||||
// | TaggedPointer | If Map is a prototype map: |
|
||||
// | | [prototype_info] |
|
||||
// | | Else: |
|
||||
// | | [raw_transitions] |
|
||||
// +---------------+---------------------------------------------+
|
||||
|
||||
class Map : public HeapObject {
|
||||
public:
|
||||
@ -581,9 +581,7 @@ class Map : public HeapObject {
|
||||
// back pointer chain until they find the map holding their constructor.
|
||||
// Returns null_value if there's neither a constructor function nor a
|
||||
// FunctionTemplateInfo available.
|
||||
// The field also overlaps with the native context pointer for context maps.
|
||||
DECL_ACCESSORS(constructor_or_backpointer, Object)
|
||||
DECL_ACCESSORS(native_context, NativeContext)
|
||||
DECL_GETTER(GetConstructor, Object)
|
||||
DECL_GETTER(GetFunctionTemplateInfo, FunctionTemplateInfo)
|
||||
inline void SetConstructor(Object constructor,
|
||||
|
@ -992,6 +992,9 @@ void V8HeapExplorer::ExtractContextReferences(HeapEntry* entry,
|
||||
SetInternalReference(entry, "extension",
|
||||
context.get(Context::EXTENSION_INDEX),
|
||||
FixedArray::OffsetOfElementAt(Context::EXTENSION_INDEX));
|
||||
SetInternalReference(
|
||||
entry, "native_context", context.get(Context::NATIVE_CONTEXT_INDEX),
|
||||
FixedArray::OffsetOfElementAt(Context::NATIVE_CONTEXT_INDEX));
|
||||
|
||||
if (context.IsNativeContext()) {
|
||||
TagObject(context.normalized_map_cache(), "(context norm. map cache)");
|
||||
@ -1061,26 +1064,19 @@ void V8HeapExplorer::ExtractMapReferences(HeapEntry* entry, Map map) {
|
||||
SetInternalReference(entry, "layout_descriptor", map.layout_descriptor(),
|
||||
Map::kLayoutDescriptorOffset);
|
||||
}
|
||||
if (map.IsContextMap()) {
|
||||
Object native_context = map.native_context();
|
||||
TagObject(native_context, "(native context)");
|
||||
SetInternalReference(entry, "native_context", native_context,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
Object constructor_or_backpointer = map.constructor_or_backpointer();
|
||||
if (constructor_or_backpointer.IsMap()) {
|
||||
TagObject(constructor_or_backpointer, "(back pointer)");
|
||||
SetInternalReference(entry, "back_pointer", constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOffset);
|
||||
} else if (constructor_or_backpointer.IsFunctionTemplateInfo()) {
|
||||
TagObject(constructor_or_backpointer, "(constructor function data)");
|
||||
SetInternalReference(entry, "constructor_function_data",
|
||||
constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOffset);
|
||||
} else {
|
||||
Object constructor_or_backpointer = map.constructor_or_backpointer();
|
||||
if (constructor_or_backpointer.IsMap()) {
|
||||
TagObject(constructor_or_backpointer, "(back pointer)");
|
||||
SetInternalReference(entry, "back_pointer", constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
} else if (constructor_or_backpointer.IsFunctionTemplateInfo()) {
|
||||
TagObject(constructor_or_backpointer, "(constructor function data)");
|
||||
SetInternalReference(entry, "constructor_function_data",
|
||||
constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
} else {
|
||||
SetInternalReference(entry, "constructor", constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOrNativeContextOffset);
|
||||
}
|
||||
SetInternalReference(entry, "constructor", constructor_or_backpointer,
|
||||
Map::kConstructorOrBackPointerOffset);
|
||||
}
|
||||
TagObject(map.dependent_code(), "(dependent code)");
|
||||
SetInternalReference(entry, "dependent_code", map.dependent_code(),
|
||||
|
@ -154,19 +154,29 @@ Address ScrapeNativeContextAddress(Heap* heap, Address context_address) {
|
||||
if (heap->memory_allocator()->IsOutsideAllocatedSpace(context_address))
|
||||
return kNullAddress;
|
||||
|
||||
i::Object object(context_address);
|
||||
i::MapWord map_word = i::HeapObject::cast(object).map_word(heap->isolate());
|
||||
// We should never be in VM state == GC, so the map word shouldn't be a
|
||||
// forwarding pointer.
|
||||
DCHECK(!map_word.IsForwardingAddress());
|
||||
// Defensively deal with forwarding pointers anyway.
|
||||
if (map_word.IsForwardingAddress()) return kNullAddress;
|
||||
i::Map map = map_word.ToMap();
|
||||
if (heap->memory_allocator()->IsOutsideAllocatedSpace(map.ptr())) {
|
||||
// Note that once a native context has been assigned to a context, the slot
|
||||
// is no longer mutated except during pointer updates / evictions. Since
|
||||
// pointer updates exclusively occur on the main thread, and we don't record
|
||||
// TickSamples when the main thread's VM state is GC, the only other
|
||||
// situation where the address here would be invalid is if it's being
|
||||
// reassigned -- which isn't possible.
|
||||
int native_context_offset =
|
||||
i::Context::SlotOffset(i::Context::NATIVE_CONTEXT_INDEX);
|
||||
i::Address native_context_slot_address =
|
||||
context_address + native_context_offset;
|
||||
|
||||
// By the prior hypothesis, the indirect native context address should always
|
||||
// be valid.
|
||||
if (heap->memory_allocator()->IsOutsideAllocatedSpace(
|
||||
native_context_slot_address)) {
|
||||
DCHECK(false);
|
||||
return kNullAddress;
|
||||
}
|
||||
return map.native_context(heap->isolate()).ptr();
|
||||
|
||||
i::ObjectSlot native_context_slot(native_context_slot_address);
|
||||
i::Object native_context = native_context_slot.Relaxed_Load();
|
||||
|
||||
return native_context.ptr();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -54,12 +54,12 @@ class Symbol;
|
||||
V(Map, scope_info_map, ScopeInfoMap) \
|
||||
V(Map, shared_function_info_map, SharedFunctionInfoMap) \
|
||||
V(Map, code_map, CodeMap) \
|
||||
V(Map, function_context_map, FunctionContextMap) \
|
||||
V(Map, cell_map, CellMap) \
|
||||
V(Map, global_property_cell_map, GlobalPropertyCellMap) \
|
||||
V(Map, foreign_map, ForeignMap) \
|
||||
V(Map, heap_number_map, HeapNumberMap) \
|
||||
V(Map, transition_array_map, TransitionArrayMap) \
|
||||
V(Map, thin_one_byte_string_map, ThinOneByteStringMap) \
|
||||
/* TODO(mythria): Once lazy feedback lands, check if feedback vector map */ \
|
||||
/* is still a popular map */ \
|
||||
V(Map, feedback_vector_map, FeedbackVectorMap) \
|
||||
@ -73,8 +73,18 @@ class Symbol;
|
||||
V(Oddball, termination_exception, TerminationException) \
|
||||
V(Oddball, optimized_out, OptimizedOut) \
|
||||
V(Oddball, stale_register, StaleRegister) \
|
||||
/* Maps */ \
|
||||
/* Context maps */ \
|
||||
V(Map, native_context_map, NativeContextMap) \
|
||||
V(Map, module_context_map, ModuleContextMap) \
|
||||
V(Map, eval_context_map, EvalContextMap) \
|
||||
V(Map, script_context_map, ScriptContextMap) \
|
||||
V(Map, await_context_map, AwaitContextMap) \
|
||||
V(Map, block_context_map, BlockContextMap) \
|
||||
V(Map, catch_context_map, CatchContextMap) \
|
||||
V(Map, with_context_map, WithContextMap) \
|
||||
V(Map, debug_evaluate_context_map, DebugEvaluateContextMap) \
|
||||
V(Map, script_context_table_map, ScriptContextTableMap) \
|
||||
/* Maps */ \
|
||||
V(Map, closure_feedback_cell_array_map, ClosureFeedbackCellArrayMap) \
|
||||
V(Map, feedback_metadata_map, FeedbackMetadataArrayMap) \
|
||||
V(Map, array_list_map, ArrayListMap) \
|
||||
@ -123,6 +133,7 @@ class Symbol;
|
||||
V(Map, string_map, StringMap) \
|
||||
V(Map, cons_one_byte_string_map, ConsOneByteStringMap) \
|
||||
V(Map, cons_string_map, ConsStringMap) \
|
||||
V(Map, thin_one_byte_string_map, ThinOneByteStringMap) \
|
||||
V(Map, thin_string_map, ThinStringMap) \
|
||||
V(Map, sliced_string_map, SlicedStringMap) \
|
||||
V(Map, sliced_one_byte_string_map, SlicedOneByteStringMap) \
|
||||
|
@ -110,7 +110,7 @@ void ContextSpecializationTester::CheckContextInputAndDepthChanges(
|
||||
CHECK_EQ(new_access.immutable(), access.immutable());
|
||||
}
|
||||
|
||||
static const int slot_index = Context::PREVIOUS_INDEX;
|
||||
static const int slot_index = Context::NATIVE_CONTEXT_INDEX;
|
||||
|
||||
TEST(ReduceJSLoadContext0) {
|
||||
ContextSpecializationTester t(Nothing<OuterContext>());
|
||||
@ -125,7 +125,7 @@ TEST(ReduceJSLoadContext0) {
|
||||
subcontext2->set_previous(*subcontext1);
|
||||
subcontext1->set_previous(*native);
|
||||
Handle<Object> expected = t.factory()->InternalizeUtf8String("gboy!");
|
||||
const int slot = Context::PREVIOUS_INDEX;
|
||||
const int slot = Context::NATIVE_CONTEXT_INDEX;
|
||||
native->set(slot, *expected);
|
||||
|
||||
Node* const_context = t.jsgraph()->Constant(ObjectRef(t.broker(), native));
|
||||
@ -269,8 +269,8 @@ TEST(ReduceJSLoadContext2) {
|
||||
Handle<Context> context_object0 = t.factory()->NewNativeContext();
|
||||
Handle<Context> context_object1 = t.factory()->NewNativeContext();
|
||||
context_object1->set_previous(*context_object0);
|
||||
context_object0->set(Context::EXTENSION_INDEX, *slot_value0);
|
||||
context_object1->set(Context::EXTENSION_INDEX, *slot_value1);
|
||||
context_object0->set(slot_index, *slot_value0);
|
||||
context_object1->set(slot_index, *slot_value1);
|
||||
|
||||
Node* context0 =
|
||||
t.jsgraph()->Constant(ObjectRef(t.broker(), context_object1));
|
||||
@ -311,8 +311,7 @@ TEST(ReduceJSLoadContext2) {
|
||||
|
||||
{
|
||||
Node* load = t.graph()->NewNode(
|
||||
t.javascript()->LoadContext(2, Context::EXTENSION_INDEX, true),
|
||||
context2, start);
|
||||
t.javascript()->LoadContext(2, slot_index, true), context2, start);
|
||||
t.CheckChangesToValue(load, slot_value1);
|
||||
}
|
||||
|
||||
@ -324,8 +323,7 @@ TEST(ReduceJSLoadContext2) {
|
||||
|
||||
{
|
||||
Node* load = t.graph()->NewNode(
|
||||
t.javascript()->LoadContext(3, Context::EXTENSION_INDEX, true),
|
||||
context2, start);
|
||||
t.javascript()->LoadContext(3, slot_index, true), context2, start);
|
||||
t.CheckChangesToValue(load, slot_value0);
|
||||
}
|
||||
}
|
||||
@ -346,8 +344,8 @@ TEST(ReduceJSLoadContext3) {
|
||||
Handle<Context> context_object0 = factory->NewNativeContext();
|
||||
Handle<Context> context_object1 = factory->NewNativeContext();
|
||||
context_object1->set_previous(*context_object0);
|
||||
context_object0->set(Context::EXTENSION_INDEX, *slot_value0);
|
||||
context_object1->set(Context::EXTENSION_INDEX, *slot_value1);
|
||||
context_object0->set(slot_index, *slot_value0);
|
||||
context_object1->set(slot_index, *slot_value1);
|
||||
|
||||
ContextSpecializationTester t(Just(OuterContext(context_object1, 0)));
|
||||
|
||||
@ -396,8 +394,7 @@ TEST(ReduceJSLoadContext3) {
|
||||
|
||||
{
|
||||
Node* load = t.graph()->NewNode(
|
||||
t.javascript()->LoadContext(2, Context::EXTENSION_INDEX, true),
|
||||
context2, start);
|
||||
t.javascript()->LoadContext(2, slot_index, true), context2, start);
|
||||
t.CheckChangesToValue(load, slot_value1);
|
||||
}
|
||||
|
||||
@ -409,8 +406,7 @@ TEST(ReduceJSLoadContext3) {
|
||||
|
||||
{
|
||||
Node* load = t.graph()->NewNode(
|
||||
t.javascript()->LoadContext(3, Context::EXTENSION_INDEX, true),
|
||||
context2, start);
|
||||
t.javascript()->LoadContext(3, slot_index, true), context2, start);
|
||||
t.CheckChangesToValue(load, slot_value0);
|
||||
}
|
||||
}
|
||||
@ -428,7 +424,7 @@ TEST(ReduceJSStoreContext0) {
|
||||
subcontext2->set_previous(*subcontext1);
|
||||
subcontext1->set_previous(*native);
|
||||
Handle<Object> expected = t.factory()->InternalizeUtf8String("gboy!");
|
||||
const int slot = Context::PREVIOUS_INDEX;
|
||||
const int slot = Context::NATIVE_CONTEXT_INDEX;
|
||||
native->set(slot, *expected);
|
||||
|
||||
Node* const_context = t.jsgraph()->Constant(ObjectRef(t.broker(), native));
|
||||
@ -537,8 +533,8 @@ TEST(ReduceJSStoreContext2) {
|
||||
Handle<Context> context_object0 = t.factory()->NewNativeContext();
|
||||
Handle<Context> context_object1 = t.factory()->NewNativeContext();
|
||||
context_object1->set_previous(*context_object0);
|
||||
context_object0->set(Context::EXTENSION_INDEX, *slot_value0);
|
||||
context_object1->set(Context::EXTENSION_INDEX, *slot_value1);
|
||||
context_object0->set(slot_index, *slot_value0);
|
||||
context_object1->set(slot_index, *slot_value1);
|
||||
|
||||
Node* context0 =
|
||||
t.jsgraph()->Constant(ObjectRef(t.broker(), context_object1));
|
||||
@ -548,30 +544,30 @@ TEST(ReduceJSStoreContext2) {
|
||||
t.graph()->NewNode(create_function_context, context1, start, start);
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(0, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(0, slot_index),
|
||||
context2, context2, start, start);
|
||||
CHECK(!t.spec()->Reduce(store).Changed());
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(1, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(1, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context1, 0);
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(2, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(2, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context0, 0);
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(3, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(3, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context_object0, 0);
|
||||
}
|
||||
}
|
||||
@ -586,8 +582,8 @@ TEST(ReduceJSStoreContext3) {
|
||||
Handle<Context> context_object0 = factory->NewNativeContext();
|
||||
Handle<Context> context_object1 = factory->NewNativeContext();
|
||||
context_object1->set_previous(*context_object0);
|
||||
context_object0->set(Context::EXTENSION_INDEX, *slot_value0);
|
||||
context_object1->set(Context::EXTENSION_INDEX, *slot_value1);
|
||||
context_object0->set(slot_index, *slot_value0);
|
||||
context_object1->set(slot_index, *slot_value1);
|
||||
|
||||
ContextSpecializationTester t(Just(OuterContext(context_object1, 0)));
|
||||
|
||||
@ -605,30 +601,30 @@ TEST(ReduceJSStoreContext3) {
|
||||
t.graph()->NewNode(create_function_context, context1, start, start);
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(0, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(0, slot_index),
|
||||
context2, context2, start, start);
|
||||
CHECK(!t.spec()->Reduce(store).Changed());
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(1, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(1, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context1, 0);
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(2, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(2, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context_object1, 0);
|
||||
}
|
||||
|
||||
{
|
||||
Node* store = t.graph()->NewNode(
|
||||
t.javascript()->StoreContext(3, Context::EXTENSION_INDEX), context2,
|
||||
context2, start, start);
|
||||
Node* store =
|
||||
t.graph()->NewNode(t.javascript()->StoreContext(3, slot_index),
|
||||
context2, context2, start, start);
|
||||
t.CheckContextInputAndDepthChanges(store, context_object0, 0);
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(0), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
|
||||
@ -152,7 +152,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(0), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
|
||||
@ -332,7 +332,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(7),
|
||||
B(PushContext), R(8),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(0), R(9),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(9), U8(2),
|
||||
@ -553,7 +553,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(0), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(6), U8(2),
|
||||
|
@ -67,7 +67,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(3),
|
||||
B(PushContext), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
@ -149,7 +149,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(3),
|
||||
B(PushContext), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
@ -237,7 +237,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
@ -326,7 +326,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
|
@ -703,19 +703,19 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(2),
|
||||
/* 73 S> */ B(LdaSmi), I8(1),
|
||||
/* 73 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 73 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 102 S> */ B(Mov), R(2), R(1),
|
||||
/* 106 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 106 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(JumpIfToBooleanFalse), U8(6),
|
||||
/* 113 S> */ B(PopContext), R(3),
|
||||
B(Jump), U8(10),
|
||||
/* 126 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 126 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Inc), U8(0),
|
||||
/* 127 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 127 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(3),
|
||||
B(JumpLoop), U8(41), I8(0),
|
||||
B(LdaUndefined),
|
||||
|
@ -107,11 +107,11 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(1),
|
||||
/* 53 S> */ B(LdaSmi), I8(10),
|
||||
/* 53 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 53 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 85 S> */ B(Mov), R(1), R(0),
|
||||
B(Ldar), R(1),
|
||||
/* 88 S> */ B(Jump), U8(2),
|
||||
@ -146,28 +146,28 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateBlockContext), U8(1),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateClosure), U8(2), U8(0), U8(2),
|
||||
B(Star), R(1),
|
||||
/* 76 S> */ B(LdaSmi), I8(2),
|
||||
/* 76 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 76 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 113 S> */ B(Mov), R(1), R(0),
|
||||
/* 118 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 118 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(JumpIfToBooleanFalse), U8(6),
|
||||
/* 125 S> */ B(PopContext), R(3),
|
||||
B(Jump), U8(8),
|
||||
/* 142 S> */ B(LdaSmi), I8(3),
|
||||
/* 144 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 144 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(3),
|
||||
/* 155 S> */ B(LdaSmi), I8(4),
|
||||
/* 157 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 157 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 162 S> */ B(Return),
|
||||
]
|
||||
|
@ -16,11 +16,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 34 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 36 E> */ B(StaLookupSlot), U8(2), U8(0),
|
||||
|
@ -100,9 +100,9 @@ bytecodes: [
|
||||
B(PushContext), R(1),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 43 S> */ B(LdaConstant), U8(1),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 57 S> */ B(LdaConstant), U8(2),
|
||||
/* 57 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 57 E> */ B(StaCurrentContextSlot), U8(5),
|
||||
B(CreateBlockContext), U8(3),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
@ -111,11 +111,11 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(4),
|
||||
B(Star), R(4),
|
||||
/* 75 S> */ B(LdaImmutableContextSlot), R(2), U8(3), U8(0),
|
||||
/* 75 S> */ B(LdaImmutableContextSlot), R(2), U8(4), U8(0),
|
||||
B(ToName), R(7),
|
||||
B(CreateClosure), U8(6), U8(1), U8(2),
|
||||
B(Star), R(8),
|
||||
/* 106 S> */ B(LdaImmutableContextSlot), R(2), U8(4), U8(0),
|
||||
/* 106 S> */ B(LdaImmutableContextSlot), R(2), U8(5), U8(0),
|
||||
B(ToName), R(9),
|
||||
B(LdaConstant), U8(7),
|
||||
B(TestEqualStrict), R(9), U8(0),
|
||||
@ -159,7 +159,7 @@ bytecodes: [
|
||||
B(PushContext), R(1),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 46 S> */ B(LdaZero),
|
||||
/* 46 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 46 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateBlockContext), U8(1),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
|
@ -108,11 +108,11 @@ bytecodes: [
|
||||
B(PushContext), R(0),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 45 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 75 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 75 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(BitwiseOrSmi), I8(24), U8(0),
|
||||
/* 77 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 77 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 84 S> */ B(Return),
|
||||
]
|
||||
|
@ -16,10 +16,10 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 44 S> */ B(LdaSmi), I8(10),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 74 S> */ B(Return),
|
||||
]
|
||||
@ -40,11 +40,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 44 S> */ B(LdaSmi), I8(10),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 74 S> */ B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 74 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
/* 83 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -64,14 +64,14 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 44 S> */ B(LdaSmi), I8(20),
|
||||
B(Star), R(1),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
/* 47 E> */ B(ThrowReferenceErrorIfHole), U8(1),
|
||||
B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 80 S> */ B(Return),
|
||||
]
|
||||
@ -93,10 +93,10 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 44 S> */ B(LdaSmi), I8(10),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 48 S> */ B(LdaSmi), I8(20),
|
||||
/* 50 E> */ B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
|
||||
B(LdaUndefined),
|
||||
|
@ -18,7 +18,7 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 19 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 51 S> */ B(Return),
|
||||
@ -42,11 +42,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 27 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(0),
|
||||
/* 53 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 53 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
/* 65 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -68,9 +68,9 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(2),
|
||||
B(PushContext), R(0),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(arg2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 29 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 60 S> */ B(Return),
|
||||
@ -95,7 +95,7 @@ bytecodes: [
|
||||
B(PushContext), R(0),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 26 S> */ B(Ldar), R(this),
|
||||
/* 26 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 26 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 32 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 64 S> */ B(Return),
|
||||
]
|
||||
|
@ -38,7 +38,7 @@ bytecodes: [
|
||||
B(PushContext), R(0),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 45 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 74 S> */ B(Return),
|
||||
]
|
||||
@ -61,9 +61,9 @@ bytecodes: [
|
||||
B(PushContext), R(0),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 53 S> */ B(LdaSmi), I8(2),
|
||||
/* 53 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 53 E> */ B(StaCurrentContextSlot), U8(5),
|
||||
/* 56 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
/* 91 S> */ B(Return),
|
||||
]
|
||||
@ -88,7 +88,7 @@ bytecodes: [
|
||||
/* 41 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(1),
|
||||
/* 64 E> */ B(CallUndefinedReceiver0), R(1), U8(0),
|
||||
/* 68 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 68 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
/* 77 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -111,16 +111,16 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 56 S> */ B(LdaSmi), I8(1),
|
||||
/* 56 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 56 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateBlockContext), U8(1),
|
||||
B(PushContext), R(1),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 69 S> */ B(LdaSmi), I8(2),
|
||||
/* 69 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 69 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 72 S> */ B(CreateClosure), U8(2), U8(0), U8(2),
|
||||
/* 101 S> */ B(Return),
|
||||
]
|
||||
@ -385,533 +385,530 @@ snippet: "
|
||||
var a1143 = 0;
|
||||
var a1144 = 0;
|
||||
var a1145 = 0;
|
||||
var a1146 = 0;
|
||||
eval();
|
||||
var b = 100;
|
||||
return b
|
||||
"
|
||||
frame size: 3
|
||||
parameter count: 1
|
||||
bytecode array length: 791
|
||||
bytecode array length: 788
|
||||
bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(255),
|
||||
B(CreateFunctionContext), U8(0), U8(254),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateUnmappedArguments),
|
||||
B(Wide), B(StaCurrentContextSlot), U16(257),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 59 S> */ B(LdaZero),
|
||||
/* 59 E> */ B(StaCurrentContextSlot), U8(5),
|
||||
/* 59 E> */ B(StaCurrentContextSlot), U8(6),
|
||||
/* 73 S> */ B(LdaZero),
|
||||
/* 73 E> */ B(StaCurrentContextSlot), U8(6),
|
||||
/* 73 E> */ B(StaCurrentContextSlot), U8(7),
|
||||
/* 87 S> */ B(LdaZero),
|
||||
/* 87 E> */ B(StaCurrentContextSlot), U8(7),
|
||||
/* 87 E> */ B(StaCurrentContextSlot), U8(8),
|
||||
/* 101 S> */ B(LdaZero),
|
||||
/* 101 E> */ B(StaCurrentContextSlot), U8(8),
|
||||
/* 101 E> */ B(StaCurrentContextSlot), U8(9),
|
||||
/* 115 S> */ B(LdaZero),
|
||||
/* 115 E> */ B(StaCurrentContextSlot), U8(9),
|
||||
/* 115 E> */ B(StaCurrentContextSlot), U8(10),
|
||||
/* 129 S> */ B(LdaZero),
|
||||
/* 129 E> */ B(StaCurrentContextSlot), U8(10),
|
||||
/* 129 E> */ B(StaCurrentContextSlot), U8(11),
|
||||
/* 143 S> */ B(LdaZero),
|
||||
/* 143 E> */ B(StaCurrentContextSlot), U8(11),
|
||||
/* 143 E> */ B(StaCurrentContextSlot), U8(12),
|
||||
/* 157 S> */ B(LdaZero),
|
||||
/* 157 E> */ B(StaCurrentContextSlot), U8(12),
|
||||
/* 157 E> */ B(StaCurrentContextSlot), U8(13),
|
||||
/* 171 S> */ B(LdaZero),
|
||||
/* 171 E> */ B(StaCurrentContextSlot), U8(13),
|
||||
/* 171 E> */ B(StaCurrentContextSlot), U8(14),
|
||||
/* 185 S> */ B(LdaZero),
|
||||
/* 185 E> */ B(StaCurrentContextSlot), U8(14),
|
||||
/* 185 E> */ B(StaCurrentContextSlot), U8(15),
|
||||
/* 199 S> */ B(LdaZero),
|
||||
/* 199 E> */ B(StaCurrentContextSlot), U8(15),
|
||||
/* 199 E> */ B(StaCurrentContextSlot), U8(16),
|
||||
/* 213 S> */ B(LdaZero),
|
||||
/* 213 E> */ B(StaCurrentContextSlot), U8(16),
|
||||
/* 213 E> */ B(StaCurrentContextSlot), U8(17),
|
||||
/* 227 S> */ B(LdaZero),
|
||||
/* 227 E> */ B(StaCurrentContextSlot), U8(17),
|
||||
/* 227 E> */ B(StaCurrentContextSlot), U8(18),
|
||||
/* 241 S> */ B(LdaZero),
|
||||
/* 241 E> */ B(StaCurrentContextSlot), U8(18),
|
||||
/* 241 E> */ B(StaCurrentContextSlot), U8(19),
|
||||
/* 255 S> */ B(LdaZero),
|
||||
/* 255 E> */ B(StaCurrentContextSlot), U8(19),
|
||||
/* 255 E> */ B(StaCurrentContextSlot), U8(20),
|
||||
/* 269 S> */ B(LdaZero),
|
||||
/* 269 E> */ B(StaCurrentContextSlot), U8(20),
|
||||
/* 269 E> */ B(StaCurrentContextSlot), U8(21),
|
||||
/* 283 S> */ B(LdaZero),
|
||||
/* 283 E> */ B(StaCurrentContextSlot), U8(21),
|
||||
/* 283 E> */ B(StaCurrentContextSlot), U8(22),
|
||||
/* 297 S> */ B(LdaZero),
|
||||
/* 297 E> */ B(StaCurrentContextSlot), U8(22),
|
||||
/* 297 E> */ B(StaCurrentContextSlot), U8(23),
|
||||
/* 311 S> */ B(LdaZero),
|
||||
/* 311 E> */ B(StaCurrentContextSlot), U8(23),
|
||||
/* 311 E> */ B(StaCurrentContextSlot), U8(24),
|
||||
/* 325 S> */ B(LdaZero),
|
||||
/* 325 E> */ B(StaCurrentContextSlot), U8(24),
|
||||
/* 325 E> */ B(StaCurrentContextSlot), U8(25),
|
||||
/* 339 S> */ B(LdaZero),
|
||||
/* 339 E> */ B(StaCurrentContextSlot), U8(25),
|
||||
/* 339 E> */ B(StaCurrentContextSlot), U8(26),
|
||||
/* 353 S> */ B(LdaZero),
|
||||
/* 353 E> */ B(StaCurrentContextSlot), U8(26),
|
||||
/* 353 E> */ B(StaCurrentContextSlot), U8(27),
|
||||
/* 367 S> */ B(LdaZero),
|
||||
/* 367 E> */ B(StaCurrentContextSlot), U8(27),
|
||||
/* 367 E> */ B(StaCurrentContextSlot), U8(28),
|
||||
/* 381 S> */ B(LdaZero),
|
||||
/* 381 E> */ B(StaCurrentContextSlot), U8(28),
|
||||
/* 381 E> */ B(StaCurrentContextSlot), U8(29),
|
||||
/* 395 S> */ B(LdaZero),
|
||||
/* 395 E> */ B(StaCurrentContextSlot), U8(29),
|
||||
/* 395 E> */ B(StaCurrentContextSlot), U8(30),
|
||||
/* 409 S> */ B(LdaZero),
|
||||
/* 409 E> */ B(StaCurrentContextSlot), U8(30),
|
||||
/* 409 E> */ B(StaCurrentContextSlot), U8(31),
|
||||
/* 423 S> */ B(LdaZero),
|
||||
/* 423 E> */ B(StaCurrentContextSlot), U8(31),
|
||||
/* 423 E> */ B(StaCurrentContextSlot), U8(32),
|
||||
/* 437 S> */ B(LdaZero),
|
||||
/* 437 E> */ B(StaCurrentContextSlot), U8(32),
|
||||
/* 437 E> */ B(StaCurrentContextSlot), U8(33),
|
||||
/* 451 S> */ B(LdaZero),
|
||||
/* 451 E> */ B(StaCurrentContextSlot), U8(33),
|
||||
/* 451 E> */ B(StaCurrentContextSlot), U8(34),
|
||||
/* 465 S> */ B(LdaZero),
|
||||
/* 465 E> */ B(StaCurrentContextSlot), U8(34),
|
||||
/* 465 E> */ B(StaCurrentContextSlot), U8(35),
|
||||
/* 479 S> */ B(LdaZero),
|
||||
/* 479 E> */ B(StaCurrentContextSlot), U8(35),
|
||||
/* 479 E> */ B(StaCurrentContextSlot), U8(36),
|
||||
/* 493 S> */ B(LdaZero),
|
||||
/* 493 E> */ B(StaCurrentContextSlot), U8(36),
|
||||
/* 493 E> */ B(StaCurrentContextSlot), U8(37),
|
||||
/* 507 S> */ B(LdaZero),
|
||||
/* 507 E> */ B(StaCurrentContextSlot), U8(37),
|
||||
/* 507 E> */ B(StaCurrentContextSlot), U8(38),
|
||||
/* 521 S> */ B(LdaZero),
|
||||
/* 521 E> */ B(StaCurrentContextSlot), U8(38),
|
||||
/* 521 E> */ B(StaCurrentContextSlot), U8(39),
|
||||
/* 535 S> */ B(LdaZero),
|
||||
/* 535 E> */ B(StaCurrentContextSlot), U8(39),
|
||||
/* 535 E> */ B(StaCurrentContextSlot), U8(40),
|
||||
/* 549 S> */ B(LdaZero),
|
||||
/* 549 E> */ B(StaCurrentContextSlot), U8(40),
|
||||
/* 549 E> */ B(StaCurrentContextSlot), U8(41),
|
||||
/* 563 S> */ B(LdaZero),
|
||||
/* 563 E> */ B(StaCurrentContextSlot), U8(41),
|
||||
/* 563 E> */ B(StaCurrentContextSlot), U8(42),
|
||||
/* 577 S> */ B(LdaZero),
|
||||
/* 577 E> */ B(StaCurrentContextSlot), U8(42),
|
||||
/* 577 E> */ B(StaCurrentContextSlot), U8(43),
|
||||
/* 591 S> */ B(LdaZero),
|
||||
/* 591 E> */ B(StaCurrentContextSlot), U8(43),
|
||||
/* 591 E> */ B(StaCurrentContextSlot), U8(44),
|
||||
/* 605 S> */ B(LdaZero),
|
||||
/* 605 E> */ B(StaCurrentContextSlot), U8(44),
|
||||
/* 605 E> */ B(StaCurrentContextSlot), U8(45),
|
||||
/* 619 S> */ B(LdaZero),
|
||||
/* 619 E> */ B(StaCurrentContextSlot), U8(45),
|
||||
/* 619 E> */ B(StaCurrentContextSlot), U8(46),
|
||||
/* 633 S> */ B(LdaZero),
|
||||
/* 633 E> */ B(StaCurrentContextSlot), U8(46),
|
||||
/* 633 E> */ B(StaCurrentContextSlot), U8(47),
|
||||
/* 647 S> */ B(LdaZero),
|
||||
/* 647 E> */ B(StaCurrentContextSlot), U8(47),
|
||||
/* 647 E> */ B(StaCurrentContextSlot), U8(48),
|
||||
/* 661 S> */ B(LdaZero),
|
||||
/* 661 E> */ B(StaCurrentContextSlot), U8(48),
|
||||
/* 661 E> */ B(StaCurrentContextSlot), U8(49),
|
||||
/* 675 S> */ B(LdaZero),
|
||||
/* 675 E> */ B(StaCurrentContextSlot), U8(49),
|
||||
/* 675 E> */ B(StaCurrentContextSlot), U8(50),
|
||||
/* 689 S> */ B(LdaZero),
|
||||
/* 689 E> */ B(StaCurrentContextSlot), U8(50),
|
||||
/* 689 E> */ B(StaCurrentContextSlot), U8(51),
|
||||
/* 703 S> */ B(LdaZero),
|
||||
/* 703 E> */ B(StaCurrentContextSlot), U8(51),
|
||||
/* 703 E> */ B(StaCurrentContextSlot), U8(52),
|
||||
/* 717 S> */ B(LdaZero),
|
||||
/* 717 E> */ B(StaCurrentContextSlot), U8(52),
|
||||
/* 717 E> */ B(StaCurrentContextSlot), U8(53),
|
||||
/* 731 S> */ B(LdaZero),
|
||||
/* 731 E> */ B(StaCurrentContextSlot), U8(53),
|
||||
/* 731 E> */ B(StaCurrentContextSlot), U8(54),
|
||||
/* 745 S> */ B(LdaZero),
|
||||
/* 745 E> */ B(StaCurrentContextSlot), U8(54),
|
||||
/* 745 E> */ B(StaCurrentContextSlot), U8(55),
|
||||
/* 759 S> */ B(LdaZero),
|
||||
/* 759 E> */ B(StaCurrentContextSlot), U8(55),
|
||||
/* 759 E> */ B(StaCurrentContextSlot), U8(56),
|
||||
/* 773 S> */ B(LdaZero),
|
||||
/* 773 E> */ B(StaCurrentContextSlot), U8(56),
|
||||
/* 773 E> */ B(StaCurrentContextSlot), U8(57),
|
||||
/* 787 S> */ B(LdaZero),
|
||||
/* 787 E> */ B(StaCurrentContextSlot), U8(57),
|
||||
/* 787 E> */ B(StaCurrentContextSlot), U8(58),
|
||||
/* 801 S> */ B(LdaZero),
|
||||
/* 801 E> */ B(StaCurrentContextSlot), U8(58),
|
||||
/* 801 E> */ B(StaCurrentContextSlot), U8(59),
|
||||
/* 815 S> */ B(LdaZero),
|
||||
/* 815 E> */ B(StaCurrentContextSlot), U8(59),
|
||||
/* 815 E> */ B(StaCurrentContextSlot), U8(60),
|
||||
/* 829 S> */ B(LdaZero),
|
||||
/* 829 E> */ B(StaCurrentContextSlot), U8(60),
|
||||
/* 829 E> */ B(StaCurrentContextSlot), U8(61),
|
||||
/* 843 S> */ B(LdaZero),
|
||||
/* 843 E> */ B(StaCurrentContextSlot), U8(61),
|
||||
/* 843 E> */ B(StaCurrentContextSlot), U8(62),
|
||||
/* 857 S> */ B(LdaZero),
|
||||
/* 857 E> */ B(StaCurrentContextSlot), U8(62),
|
||||
/* 857 E> */ B(StaCurrentContextSlot), U8(63),
|
||||
/* 871 S> */ B(LdaZero),
|
||||
/* 871 E> */ B(StaCurrentContextSlot), U8(63),
|
||||
/* 871 E> */ B(StaCurrentContextSlot), U8(64),
|
||||
/* 885 S> */ B(LdaZero),
|
||||
/* 885 E> */ B(StaCurrentContextSlot), U8(64),
|
||||
/* 885 E> */ B(StaCurrentContextSlot), U8(65),
|
||||
/* 899 S> */ B(LdaZero),
|
||||
/* 899 E> */ B(StaCurrentContextSlot), U8(65),
|
||||
/* 899 E> */ B(StaCurrentContextSlot), U8(66),
|
||||
/* 913 S> */ B(LdaZero),
|
||||
/* 913 E> */ B(StaCurrentContextSlot), U8(66),
|
||||
/* 913 E> */ B(StaCurrentContextSlot), U8(67),
|
||||
/* 927 S> */ B(LdaZero),
|
||||
/* 927 E> */ B(StaCurrentContextSlot), U8(67),
|
||||
/* 927 E> */ B(StaCurrentContextSlot), U8(68),
|
||||
/* 941 S> */ B(LdaZero),
|
||||
/* 941 E> */ B(StaCurrentContextSlot), U8(68),
|
||||
/* 941 E> */ B(StaCurrentContextSlot), U8(69),
|
||||
/* 955 S> */ B(LdaZero),
|
||||
/* 955 E> */ B(StaCurrentContextSlot), U8(69),
|
||||
/* 955 E> */ B(StaCurrentContextSlot), U8(70),
|
||||
/* 969 S> */ B(LdaZero),
|
||||
/* 969 E> */ B(StaCurrentContextSlot), U8(70),
|
||||
/* 969 E> */ B(StaCurrentContextSlot), U8(71),
|
||||
/* 983 S> */ B(LdaZero),
|
||||
/* 983 E> */ B(StaCurrentContextSlot), U8(71),
|
||||
/* 983 E> */ B(StaCurrentContextSlot), U8(72),
|
||||
/* 997 S> */ B(LdaZero),
|
||||
/* 997 E> */ B(StaCurrentContextSlot), U8(72),
|
||||
/* 997 E> */ B(StaCurrentContextSlot), U8(73),
|
||||
/* 1011 S> */ B(LdaZero),
|
||||
/* 1011 E> */ B(StaCurrentContextSlot), U8(73),
|
||||
/* 1011 E> */ B(StaCurrentContextSlot), U8(74),
|
||||
/* 1025 S> */ B(LdaZero),
|
||||
/* 1025 E> */ B(StaCurrentContextSlot), U8(74),
|
||||
/* 1025 E> */ B(StaCurrentContextSlot), U8(75),
|
||||
/* 1039 S> */ B(LdaZero),
|
||||
/* 1039 E> */ B(StaCurrentContextSlot), U8(75),
|
||||
/* 1039 E> */ B(StaCurrentContextSlot), U8(76),
|
||||
/* 1053 S> */ B(LdaZero),
|
||||
/* 1053 E> */ B(StaCurrentContextSlot), U8(76),
|
||||
/* 1053 E> */ B(StaCurrentContextSlot), U8(77),
|
||||
/* 1067 S> */ B(LdaZero),
|
||||
/* 1067 E> */ B(StaCurrentContextSlot), U8(77),
|
||||
/* 1067 E> */ B(StaCurrentContextSlot), U8(78),
|
||||
/* 1081 S> */ B(LdaZero),
|
||||
/* 1081 E> */ B(StaCurrentContextSlot), U8(78),
|
||||
/* 1081 E> */ B(StaCurrentContextSlot), U8(79),
|
||||
/* 1095 S> */ B(LdaZero),
|
||||
/* 1095 E> */ B(StaCurrentContextSlot), U8(79),
|
||||
/* 1095 E> */ B(StaCurrentContextSlot), U8(80),
|
||||
/* 1109 S> */ B(LdaZero),
|
||||
/* 1109 E> */ B(StaCurrentContextSlot), U8(80),
|
||||
/* 1109 E> */ B(StaCurrentContextSlot), U8(81),
|
||||
/* 1123 S> */ B(LdaZero),
|
||||
/* 1123 E> */ B(StaCurrentContextSlot), U8(81),
|
||||
/* 1123 E> */ B(StaCurrentContextSlot), U8(82),
|
||||
/* 1137 S> */ B(LdaZero),
|
||||
/* 1137 E> */ B(StaCurrentContextSlot), U8(82),
|
||||
/* 1137 E> */ B(StaCurrentContextSlot), U8(83),
|
||||
/* 1151 S> */ B(LdaZero),
|
||||
/* 1151 E> */ B(StaCurrentContextSlot), U8(83),
|
||||
/* 1151 E> */ B(StaCurrentContextSlot), U8(84),
|
||||
/* 1165 S> */ B(LdaZero),
|
||||
/* 1165 E> */ B(StaCurrentContextSlot), U8(84),
|
||||
/* 1165 E> */ B(StaCurrentContextSlot), U8(85),
|
||||
/* 1179 S> */ B(LdaZero),
|
||||
/* 1179 E> */ B(StaCurrentContextSlot), U8(85),
|
||||
/* 1179 E> */ B(StaCurrentContextSlot), U8(86),
|
||||
/* 1193 S> */ B(LdaZero),
|
||||
/* 1193 E> */ B(StaCurrentContextSlot), U8(86),
|
||||
/* 1193 E> */ B(StaCurrentContextSlot), U8(87),
|
||||
/* 1207 S> */ B(LdaZero),
|
||||
/* 1207 E> */ B(StaCurrentContextSlot), U8(87),
|
||||
/* 1207 E> */ B(StaCurrentContextSlot), U8(88),
|
||||
/* 1221 S> */ B(LdaZero),
|
||||
/* 1221 E> */ B(StaCurrentContextSlot), U8(88),
|
||||
/* 1221 E> */ B(StaCurrentContextSlot), U8(89),
|
||||
/* 1235 S> */ B(LdaZero),
|
||||
/* 1235 E> */ B(StaCurrentContextSlot), U8(89),
|
||||
/* 1235 E> */ B(StaCurrentContextSlot), U8(90),
|
||||
/* 1249 S> */ B(LdaZero),
|
||||
/* 1249 E> */ B(StaCurrentContextSlot), U8(90),
|
||||
/* 1249 E> */ B(StaCurrentContextSlot), U8(91),
|
||||
/* 1263 S> */ B(LdaZero),
|
||||
/* 1263 E> */ B(StaCurrentContextSlot), U8(91),
|
||||
/* 1263 E> */ B(StaCurrentContextSlot), U8(92),
|
||||
/* 1277 S> */ B(LdaZero),
|
||||
/* 1277 E> */ B(StaCurrentContextSlot), U8(92),
|
||||
/* 1277 E> */ B(StaCurrentContextSlot), U8(93),
|
||||
/* 1291 S> */ B(LdaZero),
|
||||
/* 1291 E> */ B(StaCurrentContextSlot), U8(93),
|
||||
/* 1291 E> */ B(StaCurrentContextSlot), U8(94),
|
||||
/* 1305 S> */ B(LdaZero),
|
||||
/* 1305 E> */ B(StaCurrentContextSlot), U8(94),
|
||||
/* 1305 E> */ B(StaCurrentContextSlot), U8(95),
|
||||
/* 1319 S> */ B(LdaZero),
|
||||
/* 1319 E> */ B(StaCurrentContextSlot), U8(95),
|
||||
/* 1319 E> */ B(StaCurrentContextSlot), U8(96),
|
||||
/* 1333 S> */ B(LdaZero),
|
||||
/* 1333 E> */ B(StaCurrentContextSlot), U8(96),
|
||||
/* 1333 E> */ B(StaCurrentContextSlot), U8(97),
|
||||
/* 1347 S> */ B(LdaZero),
|
||||
/* 1347 E> */ B(StaCurrentContextSlot), U8(97),
|
||||
/* 1347 E> */ B(StaCurrentContextSlot), U8(98),
|
||||
/* 1361 S> */ B(LdaZero),
|
||||
/* 1361 E> */ B(StaCurrentContextSlot), U8(98),
|
||||
/* 1361 E> */ B(StaCurrentContextSlot), U8(99),
|
||||
/* 1375 S> */ B(LdaZero),
|
||||
/* 1375 E> */ B(StaCurrentContextSlot), U8(99),
|
||||
/* 1375 E> */ B(StaCurrentContextSlot), U8(100),
|
||||
/* 1389 S> */ B(LdaZero),
|
||||
/* 1389 E> */ B(StaCurrentContextSlot), U8(100),
|
||||
/* 1389 E> */ B(StaCurrentContextSlot), U8(101),
|
||||
/* 1403 S> */ B(LdaZero),
|
||||
/* 1403 E> */ B(StaCurrentContextSlot), U8(101),
|
||||
/* 1403 E> */ B(StaCurrentContextSlot), U8(102),
|
||||
/* 1417 S> */ B(LdaZero),
|
||||
/* 1417 E> */ B(StaCurrentContextSlot), U8(102),
|
||||
/* 1417 E> */ B(StaCurrentContextSlot), U8(103),
|
||||
/* 1431 S> */ B(LdaZero),
|
||||
/* 1431 E> */ B(StaCurrentContextSlot), U8(103),
|
||||
/* 1431 E> */ B(StaCurrentContextSlot), U8(104),
|
||||
/* 1445 S> */ B(LdaZero),
|
||||
/* 1445 E> */ B(StaCurrentContextSlot), U8(104),
|
||||
/* 1445 E> */ B(StaCurrentContextSlot), U8(105),
|
||||
/* 1459 S> */ B(LdaZero),
|
||||
/* 1459 E> */ B(StaCurrentContextSlot), U8(105),
|
||||
/* 1459 E> */ B(StaCurrentContextSlot), U8(106),
|
||||
/* 1473 S> */ B(LdaZero),
|
||||
/* 1473 E> */ B(StaCurrentContextSlot), U8(106),
|
||||
/* 1473 E> */ B(StaCurrentContextSlot), U8(107),
|
||||
/* 1487 S> */ B(LdaZero),
|
||||
/* 1487 E> */ B(StaCurrentContextSlot), U8(107),
|
||||
/* 1487 E> */ B(StaCurrentContextSlot), U8(108),
|
||||
/* 1501 S> */ B(LdaZero),
|
||||
/* 1501 E> */ B(StaCurrentContextSlot), U8(108),
|
||||
/* 1501 E> */ B(StaCurrentContextSlot), U8(109),
|
||||
/* 1516 S> */ B(LdaZero),
|
||||
/* 1516 E> */ B(StaCurrentContextSlot), U8(109),
|
||||
/* 1516 E> */ B(StaCurrentContextSlot), U8(110),
|
||||
/* 1531 S> */ B(LdaZero),
|
||||
/* 1531 E> */ B(StaCurrentContextSlot), U8(110),
|
||||
/* 1531 E> */ B(StaCurrentContextSlot), U8(111),
|
||||
/* 1546 S> */ B(LdaZero),
|
||||
/* 1546 E> */ B(StaCurrentContextSlot), U8(111),
|
||||
/* 1546 E> */ B(StaCurrentContextSlot), U8(112),
|
||||
/* 1561 S> */ B(LdaZero),
|
||||
/* 1561 E> */ B(StaCurrentContextSlot), U8(112),
|
||||
/* 1561 E> */ B(StaCurrentContextSlot), U8(113),
|
||||
/* 1576 S> */ B(LdaZero),
|
||||
/* 1576 E> */ B(StaCurrentContextSlot), U8(113),
|
||||
/* 1576 E> */ B(StaCurrentContextSlot), U8(114),
|
||||
/* 1591 S> */ B(LdaZero),
|
||||
/* 1591 E> */ B(StaCurrentContextSlot), U8(114),
|
||||
/* 1591 E> */ B(StaCurrentContextSlot), U8(115),
|
||||
/* 1606 S> */ B(LdaZero),
|
||||
/* 1606 E> */ B(StaCurrentContextSlot), U8(115),
|
||||
/* 1606 E> */ B(StaCurrentContextSlot), U8(116),
|
||||
/* 1621 S> */ B(LdaZero),
|
||||
/* 1621 E> */ B(StaCurrentContextSlot), U8(116),
|
||||
/* 1621 E> */ B(StaCurrentContextSlot), U8(117),
|
||||
/* 1636 S> */ B(LdaZero),
|
||||
/* 1636 E> */ B(StaCurrentContextSlot), U8(117),
|
||||
/* 1636 E> */ B(StaCurrentContextSlot), U8(118),
|
||||
/* 1651 S> */ B(LdaZero),
|
||||
/* 1651 E> */ B(StaCurrentContextSlot), U8(118),
|
||||
/* 1651 E> */ B(StaCurrentContextSlot), U8(119),
|
||||
/* 1666 S> */ B(LdaZero),
|
||||
/* 1666 E> */ B(StaCurrentContextSlot), U8(119),
|
||||
/* 1666 E> */ B(StaCurrentContextSlot), U8(120),
|
||||
/* 1681 S> */ B(LdaZero),
|
||||
/* 1681 E> */ B(StaCurrentContextSlot), U8(120),
|
||||
/* 1681 E> */ B(StaCurrentContextSlot), U8(121),
|
||||
/* 1696 S> */ B(LdaZero),
|
||||
/* 1696 E> */ B(StaCurrentContextSlot), U8(121),
|
||||
/* 1696 E> */ B(StaCurrentContextSlot), U8(122),
|
||||
/* 1711 S> */ B(LdaZero),
|
||||
/* 1711 E> */ B(StaCurrentContextSlot), U8(122),
|
||||
/* 1711 E> */ B(StaCurrentContextSlot), U8(123),
|
||||
/* 1726 S> */ B(LdaZero),
|
||||
/* 1726 E> */ B(StaCurrentContextSlot), U8(123),
|
||||
/* 1726 E> */ B(StaCurrentContextSlot), U8(124),
|
||||
/* 1741 S> */ B(LdaZero),
|
||||
/* 1741 E> */ B(StaCurrentContextSlot), U8(124),
|
||||
/* 1741 E> */ B(StaCurrentContextSlot), U8(125),
|
||||
/* 1756 S> */ B(LdaZero),
|
||||
/* 1756 E> */ B(StaCurrentContextSlot), U8(125),
|
||||
/* 1756 E> */ B(StaCurrentContextSlot), U8(126),
|
||||
/* 1771 S> */ B(LdaZero),
|
||||
/* 1771 E> */ B(StaCurrentContextSlot), U8(126),
|
||||
/* 1771 E> */ B(StaCurrentContextSlot), U8(127),
|
||||
/* 1786 S> */ B(LdaZero),
|
||||
/* 1786 E> */ B(StaCurrentContextSlot), U8(127),
|
||||
/* 1786 E> */ B(StaCurrentContextSlot), U8(128),
|
||||
/* 1801 S> */ B(LdaZero),
|
||||
/* 1801 E> */ B(StaCurrentContextSlot), U8(128),
|
||||
/* 1801 E> */ B(StaCurrentContextSlot), U8(129),
|
||||
/* 1816 S> */ B(LdaZero),
|
||||
/* 1816 E> */ B(StaCurrentContextSlot), U8(129),
|
||||
/* 1816 E> */ B(StaCurrentContextSlot), U8(130),
|
||||
/* 1831 S> */ B(LdaZero),
|
||||
/* 1831 E> */ B(StaCurrentContextSlot), U8(130),
|
||||
/* 1831 E> */ B(StaCurrentContextSlot), U8(131),
|
||||
/* 1846 S> */ B(LdaZero),
|
||||
/* 1846 E> */ B(StaCurrentContextSlot), U8(131),
|
||||
/* 1846 E> */ B(StaCurrentContextSlot), U8(132),
|
||||
/* 1861 S> */ B(LdaZero),
|
||||
/* 1861 E> */ B(StaCurrentContextSlot), U8(132),
|
||||
/* 1861 E> */ B(StaCurrentContextSlot), U8(133),
|
||||
/* 1876 S> */ B(LdaZero),
|
||||
/* 1876 E> */ B(StaCurrentContextSlot), U8(133),
|
||||
/* 1876 E> */ B(StaCurrentContextSlot), U8(134),
|
||||
/* 1891 S> */ B(LdaZero),
|
||||
/* 1891 E> */ B(StaCurrentContextSlot), U8(134),
|
||||
/* 1891 E> */ B(StaCurrentContextSlot), U8(135),
|
||||
/* 1906 S> */ B(LdaZero),
|
||||
/* 1906 E> */ B(StaCurrentContextSlot), U8(135),
|
||||
/* 1906 E> */ B(StaCurrentContextSlot), U8(136),
|
||||
/* 1921 S> */ B(LdaZero),
|
||||
/* 1921 E> */ B(StaCurrentContextSlot), U8(136),
|
||||
/* 1921 E> */ B(StaCurrentContextSlot), U8(137),
|
||||
/* 1936 S> */ B(LdaZero),
|
||||
/* 1936 E> */ B(StaCurrentContextSlot), U8(137),
|
||||
/* 1936 E> */ B(StaCurrentContextSlot), U8(138),
|
||||
/* 1951 S> */ B(LdaZero),
|
||||
/* 1951 E> */ B(StaCurrentContextSlot), U8(138),
|
||||
/* 1951 E> */ B(StaCurrentContextSlot), U8(139),
|
||||
/* 1966 S> */ B(LdaZero),
|
||||
/* 1966 E> */ B(StaCurrentContextSlot), U8(139),
|
||||
/* 1966 E> */ B(StaCurrentContextSlot), U8(140),
|
||||
/* 1981 S> */ B(LdaZero),
|
||||
/* 1981 E> */ B(StaCurrentContextSlot), U8(140),
|
||||
/* 1981 E> */ B(StaCurrentContextSlot), U8(141),
|
||||
/* 1996 S> */ B(LdaZero),
|
||||
/* 1996 E> */ B(StaCurrentContextSlot), U8(141),
|
||||
/* 1996 E> */ B(StaCurrentContextSlot), U8(142),
|
||||
/* 2011 S> */ B(LdaZero),
|
||||
/* 2011 E> */ B(StaCurrentContextSlot), U8(142),
|
||||
/* 2011 E> */ B(StaCurrentContextSlot), U8(143),
|
||||
/* 2026 S> */ B(LdaZero),
|
||||
/* 2026 E> */ B(StaCurrentContextSlot), U8(143),
|
||||
/* 2026 E> */ B(StaCurrentContextSlot), U8(144),
|
||||
/* 2041 S> */ B(LdaZero),
|
||||
/* 2041 E> */ B(StaCurrentContextSlot), U8(144),
|
||||
/* 2041 E> */ B(StaCurrentContextSlot), U8(145),
|
||||
/* 2056 S> */ B(LdaZero),
|
||||
/* 2056 E> */ B(StaCurrentContextSlot), U8(145),
|
||||
/* 2056 E> */ B(StaCurrentContextSlot), U8(146),
|
||||
/* 2071 S> */ B(LdaZero),
|
||||
/* 2071 E> */ B(StaCurrentContextSlot), U8(146),
|
||||
/* 2071 E> */ B(StaCurrentContextSlot), U8(147),
|
||||
/* 2086 S> */ B(LdaZero),
|
||||
/* 2086 E> */ B(StaCurrentContextSlot), U8(147),
|
||||
/* 2086 E> */ B(StaCurrentContextSlot), U8(148),
|
||||
/* 2101 S> */ B(LdaZero),
|
||||
/* 2101 E> */ B(StaCurrentContextSlot), U8(148),
|
||||
/* 2101 E> */ B(StaCurrentContextSlot), U8(149),
|
||||
/* 2116 S> */ B(LdaZero),
|
||||
/* 2116 E> */ B(StaCurrentContextSlot), U8(149),
|
||||
/* 2116 E> */ B(StaCurrentContextSlot), U8(150),
|
||||
/* 2131 S> */ B(LdaZero),
|
||||
/* 2131 E> */ B(StaCurrentContextSlot), U8(150),
|
||||
/* 2131 E> */ B(StaCurrentContextSlot), U8(151),
|
||||
/* 2146 S> */ B(LdaZero),
|
||||
/* 2146 E> */ B(StaCurrentContextSlot), U8(151),
|
||||
/* 2146 E> */ B(StaCurrentContextSlot), U8(152),
|
||||
/* 2161 S> */ B(LdaZero),
|
||||
/* 2161 E> */ B(StaCurrentContextSlot), U8(152),
|
||||
/* 2161 E> */ B(StaCurrentContextSlot), U8(153),
|
||||
/* 2176 S> */ B(LdaZero),
|
||||
/* 2176 E> */ B(StaCurrentContextSlot), U8(153),
|
||||
/* 2176 E> */ B(StaCurrentContextSlot), U8(154),
|
||||
/* 2191 S> */ B(LdaZero),
|
||||
/* 2191 E> */ B(StaCurrentContextSlot), U8(154),
|
||||
/* 2191 E> */ B(StaCurrentContextSlot), U8(155),
|
||||
/* 2206 S> */ B(LdaZero),
|
||||
/* 2206 E> */ B(StaCurrentContextSlot), U8(155),
|
||||
/* 2206 E> */ B(StaCurrentContextSlot), U8(156),
|
||||
/* 2221 S> */ B(LdaZero),
|
||||
/* 2221 E> */ B(StaCurrentContextSlot), U8(156),
|
||||
/* 2221 E> */ B(StaCurrentContextSlot), U8(157),
|
||||
/* 2236 S> */ B(LdaZero),
|
||||
/* 2236 E> */ B(StaCurrentContextSlot), U8(157),
|
||||
/* 2236 E> */ B(StaCurrentContextSlot), U8(158),
|
||||
/* 2251 S> */ B(LdaZero),
|
||||
/* 2251 E> */ B(StaCurrentContextSlot), U8(158),
|
||||
/* 2251 E> */ B(StaCurrentContextSlot), U8(159),
|
||||
/* 2266 S> */ B(LdaZero),
|
||||
/* 2266 E> */ B(StaCurrentContextSlot), U8(159),
|
||||
/* 2266 E> */ B(StaCurrentContextSlot), U8(160),
|
||||
/* 2281 S> */ B(LdaZero),
|
||||
/* 2281 E> */ B(StaCurrentContextSlot), U8(160),
|
||||
/* 2281 E> */ B(StaCurrentContextSlot), U8(161),
|
||||
/* 2296 S> */ B(LdaZero),
|
||||
/* 2296 E> */ B(StaCurrentContextSlot), U8(161),
|
||||
/* 2296 E> */ B(StaCurrentContextSlot), U8(162),
|
||||
/* 2311 S> */ B(LdaZero),
|
||||
/* 2311 E> */ B(StaCurrentContextSlot), U8(162),
|
||||
/* 2311 E> */ B(StaCurrentContextSlot), U8(163),
|
||||
/* 2326 S> */ B(LdaZero),
|
||||
/* 2326 E> */ B(StaCurrentContextSlot), U8(163),
|
||||
/* 2326 E> */ B(StaCurrentContextSlot), U8(164),
|
||||
/* 2341 S> */ B(LdaZero),
|
||||
/* 2341 E> */ B(StaCurrentContextSlot), U8(164),
|
||||
/* 2341 E> */ B(StaCurrentContextSlot), U8(165),
|
||||
/* 2356 S> */ B(LdaZero),
|
||||
/* 2356 E> */ B(StaCurrentContextSlot), U8(165),
|
||||
/* 2356 E> */ B(StaCurrentContextSlot), U8(166),
|
||||
/* 2371 S> */ B(LdaZero),
|
||||
/* 2371 E> */ B(StaCurrentContextSlot), U8(166),
|
||||
/* 2371 E> */ B(StaCurrentContextSlot), U8(167),
|
||||
/* 2386 S> */ B(LdaZero),
|
||||
/* 2386 E> */ B(StaCurrentContextSlot), U8(167),
|
||||
/* 2386 E> */ B(StaCurrentContextSlot), U8(168),
|
||||
/* 2401 S> */ B(LdaZero),
|
||||
/* 2401 E> */ B(StaCurrentContextSlot), U8(168),
|
||||
/* 2401 E> */ B(StaCurrentContextSlot), U8(169),
|
||||
/* 2416 S> */ B(LdaZero),
|
||||
/* 2416 E> */ B(StaCurrentContextSlot), U8(169),
|
||||
/* 2416 E> */ B(StaCurrentContextSlot), U8(170),
|
||||
/* 2431 S> */ B(LdaZero),
|
||||
/* 2431 E> */ B(StaCurrentContextSlot), U8(170),
|
||||
/* 2431 E> */ B(StaCurrentContextSlot), U8(171),
|
||||
/* 2446 S> */ B(LdaZero),
|
||||
/* 2446 E> */ B(StaCurrentContextSlot), U8(171),
|
||||
/* 2446 E> */ B(StaCurrentContextSlot), U8(172),
|
||||
/* 2461 S> */ B(LdaZero),
|
||||
/* 2461 E> */ B(StaCurrentContextSlot), U8(172),
|
||||
/* 2461 E> */ B(StaCurrentContextSlot), U8(173),
|
||||
/* 2476 S> */ B(LdaZero),
|
||||
/* 2476 E> */ B(StaCurrentContextSlot), U8(173),
|
||||
/* 2476 E> */ B(StaCurrentContextSlot), U8(174),
|
||||
/* 2491 S> */ B(LdaZero),
|
||||
/* 2491 E> */ B(StaCurrentContextSlot), U8(174),
|
||||
/* 2491 E> */ B(StaCurrentContextSlot), U8(175),
|
||||
/* 2506 S> */ B(LdaZero),
|
||||
/* 2506 E> */ B(StaCurrentContextSlot), U8(175),
|
||||
/* 2506 E> */ B(StaCurrentContextSlot), U8(176),
|
||||
/* 2521 S> */ B(LdaZero),
|
||||
/* 2521 E> */ B(StaCurrentContextSlot), U8(176),
|
||||
/* 2521 E> */ B(StaCurrentContextSlot), U8(177),
|
||||
/* 2536 S> */ B(LdaZero),
|
||||
/* 2536 E> */ B(StaCurrentContextSlot), U8(177),
|
||||
/* 2536 E> */ B(StaCurrentContextSlot), U8(178),
|
||||
/* 2551 S> */ B(LdaZero),
|
||||
/* 2551 E> */ B(StaCurrentContextSlot), U8(178),
|
||||
/* 2551 E> */ B(StaCurrentContextSlot), U8(179),
|
||||
/* 2566 S> */ B(LdaZero),
|
||||
/* 2566 E> */ B(StaCurrentContextSlot), U8(179),
|
||||
/* 2566 E> */ B(StaCurrentContextSlot), U8(180),
|
||||
/* 2581 S> */ B(LdaZero),
|
||||
/* 2581 E> */ B(StaCurrentContextSlot), U8(180),
|
||||
/* 2581 E> */ B(StaCurrentContextSlot), U8(181),
|
||||
/* 2596 S> */ B(LdaZero),
|
||||
/* 2596 E> */ B(StaCurrentContextSlot), U8(181),
|
||||
/* 2596 E> */ B(StaCurrentContextSlot), U8(182),
|
||||
/* 2611 S> */ B(LdaZero),
|
||||
/* 2611 E> */ B(StaCurrentContextSlot), U8(182),
|
||||
/* 2611 E> */ B(StaCurrentContextSlot), U8(183),
|
||||
/* 2626 S> */ B(LdaZero),
|
||||
/* 2626 E> */ B(StaCurrentContextSlot), U8(183),
|
||||
/* 2626 E> */ B(StaCurrentContextSlot), U8(184),
|
||||
/* 2641 S> */ B(LdaZero),
|
||||
/* 2641 E> */ B(StaCurrentContextSlot), U8(184),
|
||||
/* 2641 E> */ B(StaCurrentContextSlot), U8(185),
|
||||
/* 2656 S> */ B(LdaZero),
|
||||
/* 2656 E> */ B(StaCurrentContextSlot), U8(185),
|
||||
/* 2656 E> */ B(StaCurrentContextSlot), U8(186),
|
||||
/* 2671 S> */ B(LdaZero),
|
||||
/* 2671 E> */ B(StaCurrentContextSlot), U8(186),
|
||||
/* 2671 E> */ B(StaCurrentContextSlot), U8(187),
|
||||
/* 2686 S> */ B(LdaZero),
|
||||
/* 2686 E> */ B(StaCurrentContextSlot), U8(187),
|
||||
/* 2686 E> */ B(StaCurrentContextSlot), U8(188),
|
||||
/* 2701 S> */ B(LdaZero),
|
||||
/* 2701 E> */ B(StaCurrentContextSlot), U8(188),
|
||||
/* 2701 E> */ B(StaCurrentContextSlot), U8(189),
|
||||
/* 2716 S> */ B(LdaZero),
|
||||
/* 2716 E> */ B(StaCurrentContextSlot), U8(189),
|
||||
/* 2716 E> */ B(StaCurrentContextSlot), U8(190),
|
||||
/* 2731 S> */ B(LdaZero),
|
||||
/* 2731 E> */ B(StaCurrentContextSlot), U8(190),
|
||||
/* 2731 E> */ B(StaCurrentContextSlot), U8(191),
|
||||
/* 2746 S> */ B(LdaZero),
|
||||
/* 2746 E> */ B(StaCurrentContextSlot), U8(191),
|
||||
/* 2746 E> */ B(StaCurrentContextSlot), U8(192),
|
||||
/* 2761 S> */ B(LdaZero),
|
||||
/* 2761 E> */ B(StaCurrentContextSlot), U8(192),
|
||||
/* 2761 E> */ B(StaCurrentContextSlot), U8(193),
|
||||
/* 2776 S> */ B(LdaZero),
|
||||
/* 2776 E> */ B(StaCurrentContextSlot), U8(193),
|
||||
/* 2776 E> */ B(StaCurrentContextSlot), U8(194),
|
||||
/* 2791 S> */ B(LdaZero),
|
||||
/* 2791 E> */ B(StaCurrentContextSlot), U8(194),
|
||||
/* 2791 E> */ B(StaCurrentContextSlot), U8(195),
|
||||
/* 2806 S> */ B(LdaZero),
|
||||
/* 2806 E> */ B(StaCurrentContextSlot), U8(195),
|
||||
/* 2806 E> */ B(StaCurrentContextSlot), U8(196),
|
||||
/* 2821 S> */ B(LdaZero),
|
||||
/* 2821 E> */ B(StaCurrentContextSlot), U8(196),
|
||||
/* 2821 E> */ B(StaCurrentContextSlot), U8(197),
|
||||
/* 2836 S> */ B(LdaZero),
|
||||
/* 2836 E> */ B(StaCurrentContextSlot), U8(197),
|
||||
/* 2836 E> */ B(StaCurrentContextSlot), U8(198),
|
||||
/* 2851 S> */ B(LdaZero),
|
||||
/* 2851 E> */ B(StaCurrentContextSlot), U8(198),
|
||||
/* 2851 E> */ B(StaCurrentContextSlot), U8(199),
|
||||
/* 2866 S> */ B(LdaZero),
|
||||
/* 2866 E> */ B(StaCurrentContextSlot), U8(199),
|
||||
/* 2866 E> */ B(StaCurrentContextSlot), U8(200),
|
||||
/* 2881 S> */ B(LdaZero),
|
||||
/* 2881 E> */ B(StaCurrentContextSlot), U8(200),
|
||||
/* 2881 E> */ B(StaCurrentContextSlot), U8(201),
|
||||
/* 2896 S> */ B(LdaZero),
|
||||
/* 2896 E> */ B(StaCurrentContextSlot), U8(201),
|
||||
/* 2896 E> */ B(StaCurrentContextSlot), U8(202),
|
||||
/* 2911 S> */ B(LdaZero),
|
||||
/* 2911 E> */ B(StaCurrentContextSlot), U8(202),
|
||||
/* 2911 E> */ B(StaCurrentContextSlot), U8(203),
|
||||
/* 2926 S> */ B(LdaZero),
|
||||
/* 2926 E> */ B(StaCurrentContextSlot), U8(203),
|
||||
/* 2926 E> */ B(StaCurrentContextSlot), U8(204),
|
||||
/* 2941 S> */ B(LdaZero),
|
||||
/* 2941 E> */ B(StaCurrentContextSlot), U8(204),
|
||||
/* 2941 E> */ B(StaCurrentContextSlot), U8(205),
|
||||
/* 2956 S> */ B(LdaZero),
|
||||
/* 2956 E> */ B(StaCurrentContextSlot), U8(205),
|
||||
/* 2956 E> */ B(StaCurrentContextSlot), U8(206),
|
||||
/* 2971 S> */ B(LdaZero),
|
||||
/* 2971 E> */ B(StaCurrentContextSlot), U8(206),
|
||||
/* 2971 E> */ B(StaCurrentContextSlot), U8(207),
|
||||
/* 2986 S> */ B(LdaZero),
|
||||
/* 2986 E> */ B(StaCurrentContextSlot), U8(207),
|
||||
/* 2986 E> */ B(StaCurrentContextSlot), U8(208),
|
||||
/* 3001 S> */ B(LdaZero),
|
||||
/* 3001 E> */ B(StaCurrentContextSlot), U8(208),
|
||||
/* 3001 E> */ B(StaCurrentContextSlot), U8(209),
|
||||
/* 3016 S> */ B(LdaZero),
|
||||
/* 3016 E> */ B(StaCurrentContextSlot), U8(209),
|
||||
/* 3016 E> */ B(StaCurrentContextSlot), U8(210),
|
||||
/* 3031 S> */ B(LdaZero),
|
||||
/* 3031 E> */ B(StaCurrentContextSlot), U8(210),
|
||||
/* 3031 E> */ B(StaCurrentContextSlot), U8(211),
|
||||
/* 3046 S> */ B(LdaZero),
|
||||
/* 3046 E> */ B(StaCurrentContextSlot), U8(211),
|
||||
/* 3046 E> */ B(StaCurrentContextSlot), U8(212),
|
||||
/* 3061 S> */ B(LdaZero),
|
||||
/* 3061 E> */ B(StaCurrentContextSlot), U8(212),
|
||||
/* 3061 E> */ B(StaCurrentContextSlot), U8(213),
|
||||
/* 3076 S> */ B(LdaZero),
|
||||
/* 3076 E> */ B(StaCurrentContextSlot), U8(213),
|
||||
/* 3076 E> */ B(StaCurrentContextSlot), U8(214),
|
||||
/* 3091 S> */ B(LdaZero),
|
||||
/* 3091 E> */ B(StaCurrentContextSlot), U8(214),
|
||||
/* 3091 E> */ B(StaCurrentContextSlot), U8(215),
|
||||
/* 3106 S> */ B(LdaZero),
|
||||
/* 3106 E> */ B(StaCurrentContextSlot), U8(215),
|
||||
/* 3106 E> */ B(StaCurrentContextSlot), U8(216),
|
||||
/* 3121 S> */ B(LdaZero),
|
||||
/* 3121 E> */ B(StaCurrentContextSlot), U8(216),
|
||||
/* 3121 E> */ B(StaCurrentContextSlot), U8(217),
|
||||
/* 3136 S> */ B(LdaZero),
|
||||
/* 3136 E> */ B(StaCurrentContextSlot), U8(217),
|
||||
/* 3136 E> */ B(StaCurrentContextSlot), U8(218),
|
||||
/* 3151 S> */ B(LdaZero),
|
||||
/* 3151 E> */ B(StaCurrentContextSlot), U8(218),
|
||||
/* 3151 E> */ B(StaCurrentContextSlot), U8(219),
|
||||
/* 3166 S> */ B(LdaZero),
|
||||
/* 3166 E> */ B(StaCurrentContextSlot), U8(219),
|
||||
/* 3166 E> */ B(StaCurrentContextSlot), U8(220),
|
||||
/* 3181 S> */ B(LdaZero),
|
||||
/* 3181 E> */ B(StaCurrentContextSlot), U8(220),
|
||||
/* 3181 E> */ B(StaCurrentContextSlot), U8(221),
|
||||
/* 3196 S> */ B(LdaZero),
|
||||
/* 3196 E> */ B(StaCurrentContextSlot), U8(221),
|
||||
/* 3196 E> */ B(StaCurrentContextSlot), U8(222),
|
||||
/* 3211 S> */ B(LdaZero),
|
||||
/* 3211 E> */ B(StaCurrentContextSlot), U8(222),
|
||||
/* 3211 E> */ B(StaCurrentContextSlot), U8(223),
|
||||
/* 3226 S> */ B(LdaZero),
|
||||
/* 3226 E> */ B(StaCurrentContextSlot), U8(223),
|
||||
/* 3226 E> */ B(StaCurrentContextSlot), U8(224),
|
||||
/* 3241 S> */ B(LdaZero),
|
||||
/* 3241 E> */ B(StaCurrentContextSlot), U8(224),
|
||||
/* 3241 E> */ B(StaCurrentContextSlot), U8(225),
|
||||
/* 3256 S> */ B(LdaZero),
|
||||
/* 3256 E> */ B(StaCurrentContextSlot), U8(225),
|
||||
/* 3256 E> */ B(StaCurrentContextSlot), U8(226),
|
||||
/* 3271 S> */ B(LdaZero),
|
||||
/* 3271 E> */ B(StaCurrentContextSlot), U8(226),
|
||||
/* 3271 E> */ B(StaCurrentContextSlot), U8(227),
|
||||
/* 3286 S> */ B(LdaZero),
|
||||
/* 3286 E> */ B(StaCurrentContextSlot), U8(227),
|
||||
/* 3286 E> */ B(StaCurrentContextSlot), U8(228),
|
||||
/* 3301 S> */ B(LdaZero),
|
||||
/* 3301 E> */ B(StaCurrentContextSlot), U8(228),
|
||||
/* 3301 E> */ B(StaCurrentContextSlot), U8(229),
|
||||
/* 3316 S> */ B(LdaZero),
|
||||
/* 3316 E> */ B(StaCurrentContextSlot), U8(229),
|
||||
/* 3316 E> */ B(StaCurrentContextSlot), U8(230),
|
||||
/* 3331 S> */ B(LdaZero),
|
||||
/* 3331 E> */ B(StaCurrentContextSlot), U8(230),
|
||||
/* 3331 E> */ B(StaCurrentContextSlot), U8(231),
|
||||
/* 3346 S> */ B(LdaZero),
|
||||
/* 3346 E> */ B(StaCurrentContextSlot), U8(231),
|
||||
/* 3346 E> */ B(StaCurrentContextSlot), U8(232),
|
||||
/* 3361 S> */ B(LdaZero),
|
||||
/* 3361 E> */ B(StaCurrentContextSlot), U8(232),
|
||||
/* 3361 E> */ B(StaCurrentContextSlot), U8(233),
|
||||
/* 3376 S> */ B(LdaZero),
|
||||
/* 3376 E> */ B(StaCurrentContextSlot), U8(233),
|
||||
/* 3376 E> */ B(StaCurrentContextSlot), U8(234),
|
||||
/* 3391 S> */ B(LdaZero),
|
||||
/* 3391 E> */ B(StaCurrentContextSlot), U8(234),
|
||||
/* 3391 E> */ B(StaCurrentContextSlot), U8(235),
|
||||
/* 3406 S> */ B(LdaZero),
|
||||
/* 3406 E> */ B(StaCurrentContextSlot), U8(235),
|
||||
/* 3406 E> */ B(StaCurrentContextSlot), U8(236),
|
||||
/* 3421 S> */ B(LdaZero),
|
||||
/* 3421 E> */ B(StaCurrentContextSlot), U8(236),
|
||||
/* 3421 E> */ B(StaCurrentContextSlot), U8(237),
|
||||
/* 3436 S> */ B(LdaZero),
|
||||
/* 3436 E> */ B(StaCurrentContextSlot), U8(237),
|
||||
/* 3436 E> */ B(StaCurrentContextSlot), U8(238),
|
||||
/* 3451 S> */ B(LdaZero),
|
||||
/* 3451 E> */ B(StaCurrentContextSlot), U8(238),
|
||||
/* 3451 E> */ B(StaCurrentContextSlot), U8(239),
|
||||
/* 3466 S> */ B(LdaZero),
|
||||
/* 3466 E> */ B(StaCurrentContextSlot), U8(239),
|
||||
/* 3466 E> */ B(StaCurrentContextSlot), U8(240),
|
||||
/* 3481 S> */ B(LdaZero),
|
||||
/* 3481 E> */ B(StaCurrentContextSlot), U8(240),
|
||||
/* 3481 E> */ B(StaCurrentContextSlot), U8(241),
|
||||
/* 3496 S> */ B(LdaZero),
|
||||
/* 3496 E> */ B(StaCurrentContextSlot), U8(241),
|
||||
/* 3496 E> */ B(StaCurrentContextSlot), U8(242),
|
||||
/* 3511 S> */ B(LdaZero),
|
||||
/* 3511 E> */ B(StaCurrentContextSlot), U8(242),
|
||||
/* 3511 E> */ B(StaCurrentContextSlot), U8(243),
|
||||
/* 3526 S> */ B(LdaZero),
|
||||
/* 3526 E> */ B(StaCurrentContextSlot), U8(243),
|
||||
/* 3526 E> */ B(StaCurrentContextSlot), U8(244),
|
||||
/* 3541 S> */ B(LdaZero),
|
||||
/* 3541 E> */ B(StaCurrentContextSlot), U8(244),
|
||||
/* 3541 E> */ B(StaCurrentContextSlot), U8(245),
|
||||
/* 3556 S> */ B(LdaZero),
|
||||
/* 3556 E> */ B(StaCurrentContextSlot), U8(245),
|
||||
/* 3556 E> */ B(StaCurrentContextSlot), U8(246),
|
||||
/* 3571 S> */ B(LdaZero),
|
||||
/* 3571 E> */ B(StaCurrentContextSlot), U8(246),
|
||||
/* 3571 E> */ B(StaCurrentContextSlot), U8(247),
|
||||
/* 3586 S> */ B(LdaZero),
|
||||
/* 3586 E> */ B(StaCurrentContextSlot), U8(247),
|
||||
/* 3586 E> */ B(StaCurrentContextSlot), U8(248),
|
||||
/* 3601 S> */ B(LdaZero),
|
||||
/* 3601 E> */ B(StaCurrentContextSlot), U8(248),
|
||||
/* 3601 E> */ B(StaCurrentContextSlot), U8(249),
|
||||
/* 3616 S> */ B(LdaZero),
|
||||
/* 3616 E> */ B(StaCurrentContextSlot), U8(249),
|
||||
/* 3616 E> */ B(StaCurrentContextSlot), U8(250),
|
||||
/* 3631 S> */ B(LdaZero),
|
||||
/* 3631 E> */ B(StaCurrentContextSlot), U8(250),
|
||||
/* 3631 E> */ B(StaCurrentContextSlot), U8(251),
|
||||
/* 3646 S> */ B(LdaZero),
|
||||
/* 3646 E> */ B(StaCurrentContextSlot), U8(251),
|
||||
/* 3646 E> */ B(StaCurrentContextSlot), U8(252),
|
||||
/* 3661 S> */ B(LdaZero),
|
||||
/* 3661 E> */ B(StaCurrentContextSlot), U8(252),
|
||||
/* 3661 E> */ B(StaCurrentContextSlot), U8(253),
|
||||
/* 3676 S> */ B(LdaZero),
|
||||
/* 3676 E> */ B(StaCurrentContextSlot), U8(253),
|
||||
/* 3676 E> */ B(StaCurrentContextSlot), U8(254),
|
||||
/* 3691 S> */ B(LdaZero),
|
||||
/* 3691 E> */ B(StaCurrentContextSlot), U8(254),
|
||||
/* 3706 S> */ B(LdaZero),
|
||||
/* 3706 E> */ B(StaCurrentContextSlot), U8(255),
|
||||
/* 3709 S> */ B(LdaGlobal), U8(1), U8(0),
|
||||
/* 3691 E> */ B(StaCurrentContextSlot), U8(255),
|
||||
/* 3694 S> */ B(LdaGlobal), U8(1), U8(0),
|
||||
B(Star), R(2),
|
||||
/* 3709 E> */ B(CallUndefinedReceiver0), R(2), U8(2),
|
||||
/* 3725 S> */ B(LdaSmi), I8(100),
|
||||
/* 3725 E> */ B(Wide), B(StaCurrentContextSlot), U16(256),
|
||||
/* 3730 S> */ B(Wide), B(LdaCurrentContextSlot), U16(256),
|
||||
/* 3738 S> */ B(Return),
|
||||
/* 3694 E> */ B(CallUndefinedReceiver0), R(2), U8(2),
|
||||
/* 3710 S> */ B(LdaSmi), I8(100),
|
||||
/* 3710 E> */ B(Wide), B(StaCurrentContextSlot), U16(256),
|
||||
/* 3715 S> */ B(Wide), B(LdaCurrentContextSlot), U16(256),
|
||||
/* 3723 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
SCOPE_INFO_TYPE,
|
||||
|
@ -213,12 +213,12 @@ bytecodes: [
|
||||
B(PushContext), R(1),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 53 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(0),
|
||||
/* 78 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 78 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Inc), U8(0),
|
||||
/* 87 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 87 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 89 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -240,14 +240,14 @@ bytecodes: [
|
||||
B(PushContext), R(1),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(1),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 53 S> */ B(CreateClosure), U8(1), U8(0), U8(2),
|
||||
B(Star), R(0),
|
||||
/* 78 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 78 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(ToNumeric), U8(0),
|
||||
B(Star), R(2),
|
||||
B(Dec), U8(0),
|
||||
/* 86 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 86 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(Ldar), R(2),
|
||||
/* 89 S> */ B(Return),
|
||||
]
|
||||
|
@ -77,7 +77,7 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(Star), R(0),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
@ -103,11 +103,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(arg1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(arg2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(Star), R(0),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
|
@ -104,9 +104,9 @@ bytecodes: [
|
||||
B(PushContext), R(0),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 56 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(41),
|
||||
/* 56 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 56 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 64 S> */ B(CreateClosure), U8(2), U8(0), U8(2),
|
||||
/* 93 S> */ B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
/* 93 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(1),
|
||||
B(LdaSmi), I8(1),
|
||||
B(DeletePropertyStrict), R(1),
|
||||
|
@ -16,11 +16,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 34 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
|
||||
B(Star), R(2),
|
||||
|
@ -145,7 +145,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
@ -318,7 +318,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
@ -495,7 +495,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
@ -634,7 +634,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(2),
|
||||
B(PushContext), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(LdaFalse),
|
||||
B(Star), R(6),
|
||||
|
@ -114,19 +114,19 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(4),
|
||||
B(PushContext), R(2),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(1),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(7),
|
||||
B(Ldar), R(1),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
B(CreateBlockContext), U8(1),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
/* 34 S> */ B(LdaContextSlot), R(3), U8(3), U8(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 34 S> */ B(LdaContextSlot), R(3), U8(4), U8(0),
|
||||
B(Star), R(6),
|
||||
B(GetIterator), R(6), U8(0), U8(2),
|
||||
B(Star), R(5),
|
||||
@ -152,9 +152,9 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(5),
|
||||
B(PushContext), R(11),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 29 S> */ B(Ldar), R(0),
|
||||
/* 29 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 29 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 41 S> */ B(LdaLookupGlobalSlot), U8(6), U8(12), U8(3),
|
||||
B(Star), R(12),
|
||||
B(LdaConstant), U8(7),
|
||||
@ -273,9 +273,9 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(3),
|
||||
B(PushContext), R(9),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 29 S> */ B(Ldar), R(0),
|
||||
/* 29 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 29 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 41 S> */ B(CreateClosure), U8(4), U8(0), U8(2),
|
||||
B(Star), R(10),
|
||||
/* 67 E> */ B(CallUndefinedReceiver0), R(10), U8(12),
|
||||
@ -782,7 +782,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(5),
|
||||
B(PushContext), R(6),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
B(LdaFalse),
|
||||
B(Star), R(9),
|
||||
@ -915,7 +915,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(PushContext), R(5),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
|
@ -756,11 +756,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(Star), R(0),
|
||||
/* 46 E> */ B(StackCheck),
|
||||
/* 53 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 53 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(2),
|
||||
B(LdaSmi), I8(3),
|
||||
/* 57 E> */ B(StaNamedPropertyNoFeedback), R(2), U8(1), U8(0),
|
||||
@ -789,11 +789,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(arg0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(Star), R(0),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 37 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 37 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(2),
|
||||
B(LdaSmi), I8(3),
|
||||
/* 41 E> */ B(StaNamedPropertyNoFeedback), R(2), U8(1), U8(0),
|
||||
|
@ -16,10 +16,10 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(10),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 72 S> */ B(Return),
|
||||
]
|
||||
@ -40,11 +40,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(10),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 72 S> */ B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 72 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
/* 81 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -64,15 +64,15 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(20),
|
||||
B(Star), R(1),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
/* 45 E> */ B(ThrowReferenceErrorIfHole), U8(1),
|
||||
B(Ldar), R(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 78 S> */ B(Return),
|
||||
]
|
||||
@ -94,12 +94,12 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(1),
|
||||
B(PushContext), R(0),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 E> */ B(StackCheck),
|
||||
/* 42 S> */ B(LdaSmi), I8(10),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 42 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 46 S> */ B(LdaSmi), I8(20),
|
||||
/* 48 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 48 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaUndefined),
|
||||
/* 80 S> */ B(Return),
|
||||
]
|
||||
|
@ -17,11 +17,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 14 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
|
||||
B(Star), R(2),
|
||||
@ -62,11 +62,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 14 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
|
||||
B(Star), R(2),
|
||||
@ -108,11 +108,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
/* 14 S> */ B(LdaSmi), I8(20),
|
||||
/* 16 E> */ B(StaLookupSlot), U8(1), U8(0),
|
||||
@ -159,11 +159,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 38 E> */ B(StackCheck),
|
||||
/* 44 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
|
||||
B(Star), R(2),
|
||||
@ -181,7 +181,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
|
||||
B(Star), R(2),
|
||||
/* 44 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
|
||||
/* 66 S> */ B(LdaLookupContextSlot), U8(3), U8(5), U8(1),
|
||||
/* 66 S> */ B(LdaLookupContextSlot), U8(3), U8(6), U8(1),
|
||||
/* 75 S> */ B(Return),
|
||||
]
|
||||
constant pool: [
|
||||
@ -209,11 +209,11 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(1),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 34 E> */ B(StackCheck),
|
||||
/* 40 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
|
||||
B(Star), R(2),
|
||||
|
@ -23,9 +23,9 @@ parameter count: 1
|
||||
bytecode array length: 13
|
||||
bytecodes: [
|
||||
/* 97 E> */ B(StackCheck),
|
||||
/* 102 S> */ B(LdaImmutableContextSlot), R(context), U8(3), U8(1),
|
||||
/* 102 S> */ B(LdaImmutableContextSlot), R(context), U8(4), U8(1),
|
||||
B(Star), R(0),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
/* 118 E> */ B(Mul), R(0), U8(0),
|
||||
/* 129 S> */ B(Return),
|
||||
]
|
||||
@ -51,8 +51,8 @@ parameter count: 1
|
||||
bytecode array length: 9
|
||||
bytecodes: [
|
||||
/* 97 E> */ B(StackCheck),
|
||||
/* 102 S> */ B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
/* 111 E> */ B(StaContextSlot), R(context), U8(3), U8(1),
|
||||
/* 102 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
/* 111 E> */ B(StaContextSlot), R(context), U8(4), U8(1),
|
||||
B(LdaUndefined),
|
||||
/* 123 S> */ B(Return),
|
||||
]
|
||||
|
@ -27,13 +27,13 @@ parameter count: 1
|
||||
bytecode array length: 95
|
||||
bytecodes: [
|
||||
/* 67 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
/* 76 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 76 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 81 E> */ B(LdaKeyedProperty), R(this), U8(0),
|
||||
B(CallRuntime), U16(Runtime::kLoadPrivateGetter), R(3), U8(1),
|
||||
B(Star), R(4),
|
||||
@ -45,16 +45,16 @@ bytecodes: [
|
||||
B(CallProperty1), R(5), R(this), R(4), U8(5),
|
||||
/* 91 S> */ B(LdaSmi), I8(1),
|
||||
B(Star), R(2),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(Star), R(4),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 96 E> */ B(LdaKeyedProperty), R(this), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kLoadPrivateSetter), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(CallProperty1), R(5), R(this), R(2), U8(9),
|
||||
/* 108 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 108 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 120 E> */ B(LdaKeyedProperty), R(this), U8(11),
|
||||
B(CallRuntime), U16(Runtime::kLoadPrivateGetter), R(3), U8(1),
|
||||
B(Star), R(4),
|
||||
@ -80,7 +80,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 48 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
@ -111,7 +111,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 41 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
@ -142,7 +142,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 48 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
@ -173,7 +173,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 41 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
|
@ -25,7 +25,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(3), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -40,7 +40,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(5), U8(2), U8(2),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -75,7 +75,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(3), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -90,7 +90,7 @@ bytecodes: [
|
||||
B(LdaNull),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -124,7 +124,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(3), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -139,7 +139,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(4), U8(1), U8(2),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -179,7 +179,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(7),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -194,7 +194,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(5), U8(2), U8(2),
|
||||
B(Star), R(7),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(3), R(0),
|
||||
/* 38 E> */ B(CreateBlockContext), U8(6),
|
||||
@ -202,7 +202,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(8),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 118 E> */ B(CreateClosure), U8(9), U8(3), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(7),
|
||||
@ -216,7 +216,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(11), U8(5), U8(2),
|
||||
B(Star), R(7),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(3), R(1),
|
||||
B(LdaUndefined),
|
||||
@ -274,7 +274,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(6),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 77 E> */ B(CreateClosure), U8(7), U8(2), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(5),
|
||||
@ -290,7 +290,7 @@ bytecodes: [
|
||||
B(LdaNull),
|
||||
B(Star), R(7),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(3), R(1),
|
||||
/* 122 S> */ B(Ldar), R(1),
|
||||
@ -348,7 +348,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(6),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 80 E> */ B(CreateClosure), U8(7), U8(2), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(5),
|
||||
@ -364,7 +364,7 @@ bytecodes: [
|
||||
B(Ldar), R(5),
|
||||
B(StaNamedProperty), R(7), U8(9), U8(0),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(3), R(1),
|
||||
/* 126 S> */ B(Ldar), R(1),
|
||||
|
@ -34,7 +34,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -56,7 +56,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(8), U8(2), U8(2),
|
||||
@ -140,7 +140,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(4), U8(0), U8(2),
|
||||
@ -170,13 +170,13 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(5),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(12), U8(3), U8(2),
|
||||
@ -210,7 +210,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 356 E> */ B(CreateClosure), U8(19), U8(8), U8(2),
|
||||
B(Star), R(4),
|
||||
B(LdaConstant), U8(18),
|
||||
|
@ -22,13 +22,13 @@ parameter count: 1
|
||||
bytecode array length: 28
|
||||
bytecodes: [
|
||||
/* 44 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
/* 49 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
/* 49 S> */ B(LdaCurrentContextSlot), U8(5),
|
||||
/* 61 E> */ B(LdaKeyedProperty), R(this), U8(0),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(2),
|
||||
/* 63 E> */ B(CallAnyReceiver), R(2), R(this), U8(1), U8(2),
|
||||
/* 66 S> */ B(Return),
|
||||
@ -53,7 +53,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 44 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
@ -85,7 +85,7 @@ parameter count: 1
|
||||
bytecode array length: 29
|
||||
bytecodes: [
|
||||
/* 44 E> */ B(StackCheck),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(1),
|
||||
B(Mov), R(this), R(0),
|
||||
B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2),
|
||||
|
@ -24,7 +24,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(3), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -35,7 +35,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3),
|
||||
B(Star), R(4),
|
||||
B(CreateClosure), U8(4), U8(1), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(5), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -72,7 +72,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(7),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -83,7 +83,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(3),
|
||||
B(Star), R(5),
|
||||
B(CreateClosure), U8(4), U8(1), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(6), R(0),
|
||||
/* 38 E> */ B(CreateBlockContext), U8(5),
|
||||
@ -91,7 +91,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(7),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 93 E> */ B(CreateClosure), U8(8), U8(2), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(6),
|
||||
@ -101,7 +101,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(3),
|
||||
B(Star), R(5),
|
||||
B(CreateClosure), U8(9), U8(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(2),
|
||||
B(Mov), R(6), R(1),
|
||||
B(LdaUndefined),
|
||||
@ -156,7 +156,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(6),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(4), U8(1),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 77 E> */ B(CreateClosure), U8(7), U8(2), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(5),
|
||||
@ -166,7 +166,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(3),
|
||||
B(Star), R(5),
|
||||
B(CreateClosure), U8(8), U8(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(Ldar), R(5),
|
||||
B(StaNamedProperty), R(6), U8(9), U8(0),
|
||||
|
@ -29,7 +29,7 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(2), U8(0), U8(2),
|
||||
@ -37,7 +37,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(1),
|
||||
B(Star), R(4),
|
||||
/* 60 S> */ B(LdaConstant), U8(3),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(3), R(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
|
||||
@ -50,7 +50,7 @@ bytecodes: [
|
||||
/* 38 E> */ B(CreateBlockContext), U8(6),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(8), U8(2), U8(2),
|
||||
@ -58,7 +58,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(7),
|
||||
B(Star), R(4),
|
||||
/* 99 S> */ B(LdaConstant), U8(3),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(3), R(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
|
||||
@ -128,7 +128,7 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -143,7 +143,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(1),
|
||||
B(Star), R(5),
|
||||
/* 77 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(4), R(6),
|
||||
B(Mov), R(10), R(7),
|
||||
@ -157,7 +157,7 @@ bytecodes: [
|
||||
/* 38 E> */ B(CreateBlockContext), U8(8),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(11), U8(3), U8(2),
|
||||
@ -172,7 +172,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(9),
|
||||
B(Star), R(5),
|
||||
/* 133 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
B(CreateClosure), U8(13), U8(5), U8(2),
|
||||
B(Star), R(9),
|
||||
@ -188,13 +188,13 @@ bytecodes: [
|
||||
/* 90 E> */ B(CreateBlockContext), U8(15),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 236 E> */ B(CreateClosure), U8(17), U8(7), U8(2),
|
||||
B(Star), R(4),
|
||||
B(LdaConstant), U8(16),
|
||||
B(Star), R(5),
|
||||
/* 256 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(4), R(6),
|
||||
B(Mov), R(1), R(7),
|
||||
|
@ -51,19 +51,19 @@ bytecodes: [
|
||||
B(CreateFunctionContext), U8(0), U8(3),
|
||||
B(PushContext), R(4),
|
||||
B(Ldar), R(this),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Ldar), R(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateMappedArguments),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Ldar), R(3),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 10 E> */ B(StackCheck),
|
||||
B(CreateBlockContext), U8(1),
|
||||
B(PushContext), R(5),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
/* 30 S> */ B(LdaZero),
|
||||
/* 30 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
/* 30 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(0),
|
||||
B(LdaSmi), I8(1),
|
||||
B(Star), R(1),
|
||||
@ -71,21 +71,21 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(2),
|
||||
B(PushContext), R(6),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqual), R(1), U8(0),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(LdaZero),
|
||||
B(Star), R(1),
|
||||
B(Jump), U8(8),
|
||||
/* 43 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 43 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Inc), U8(1),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaSmi), I8(1),
|
||||
B(Star), R(2),
|
||||
/* 35 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 35 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(LdaSmi), I8(10),
|
||||
/* 35 E> */ B(TestLessThan), R(7), U8(2),
|
||||
@ -115,7 +115,7 @@ bytecodes: [
|
||||
/* 48 E> */ B(CallUndefinedReceiver1), R(7), R(8), U8(6),
|
||||
B(LdaZero),
|
||||
B(Star), R(2),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(0),
|
||||
B(JumpLoop), U8(56), I8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
@ -160,21 +160,21 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Ldar), R(0),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqual), R(1), U8(0),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(LdaZero),
|
||||
B(Star), R(1),
|
||||
B(Jump), U8(8),
|
||||
/* 43 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 43 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Inc), U8(1),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(3),
|
||||
/* 43 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaSmi), I8(1),
|
||||
B(Star), R(2),
|
||||
/* 35 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 35 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(LdaSmi), I8(10),
|
||||
/* 35 E> */ B(TestLessThan), R(5), U8(2),
|
||||
@ -191,7 +191,7 @@ bytecodes: [
|
||||
/* 74 E> */ B(CallUndefinedReceiver0), R(5), U8(4),
|
||||
B(LdaZero),
|
||||
B(Star), R(2),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(0),
|
||||
B(JumpLoop), U8(24), I8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
@ -404,7 +404,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(3),
|
||||
B(PushContext), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(LdaFalse),
|
||||
B(Star), R(7),
|
||||
@ -474,7 +474,7 @@ bytecodes: [
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(2),
|
||||
B(PushContext), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(LdaTrue),
|
||||
B(Star), R(6),
|
||||
|
@ -33,17 +33,17 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(2), U8(0), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(1),
|
||||
B(Star), R(4),
|
||||
/* 60 S> */ B(LdaConstant), U8(3),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
/* 92 S> */ B(LdaConstant), U8(4),
|
||||
B(Star), R(8),
|
||||
@ -53,7 +53,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
||||
B(Ldar), R(8),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(5),
|
||||
B(Star), R(4),
|
||||
B(CreateClosure), U8(6), U8(1), U8(2),
|
||||
@ -67,17 +67,17 @@ bytecodes: [
|
||||
/* 38 E> */ B(CreateBlockContext), U8(9),
|
||||
B(PushContext), R(2),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(11), U8(3), U8(2),
|
||||
B(Star), R(3),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(4),
|
||||
/* 131 S> */ B(LdaConstant), U8(3),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
/* 176 S> */ B(LdaConstant), U8(4),
|
||||
B(Star), R(8),
|
||||
@ -87,7 +87,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
||||
B(Ldar), R(8),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(5),
|
||||
B(Star), R(4),
|
||||
B(CreateClosure), U8(12), U8(4), U8(2),
|
||||
@ -168,10 +168,10 @@ bytecodes: [
|
||||
B(CreateBlockContext), U8(0),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
B(Star), R(8),
|
||||
@ -185,7 +185,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(1),
|
||||
B(Star), R(5),
|
||||
/* 77 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
/* 109 S> */ B(LdaConstant), U8(6),
|
||||
B(Star), R(9),
|
||||
@ -196,7 +196,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
||||
B(Ldar), R(9),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(5),
|
||||
B(Star), R(5),
|
||||
B(CreateClosure), U8(8), U8(2), U8(2),
|
||||
@ -210,10 +210,10 @@ bytecodes: [
|
||||
/* 38 E> */ B(CreateBlockContext), U8(11),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(11),
|
||||
B(CreateClosure), U8(14), U8(4), U8(2),
|
||||
B(Star), R(8),
|
||||
@ -227,7 +227,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(12),
|
||||
B(Star), R(5),
|
||||
/* 165 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
/* 210 S> */ B(LdaConstant), U8(6),
|
||||
B(Star), R(9),
|
||||
@ -238,7 +238,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
||||
B(Ldar), R(9),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CreateClosure), U8(16), U8(6), U8(2),
|
||||
B(Star), R(10),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(6),
|
||||
@ -254,15 +254,15 @@ bytecodes: [
|
||||
/* 122 E> */ B(CreateBlockContext), U8(19),
|
||||
B(PushContext), R(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
/* 313 E> */ B(CreateClosure), U8(21), U8(9), U8(2),
|
||||
B(Star), R(4),
|
||||
B(LdaConstant), U8(20),
|
||||
B(Star), R(5),
|
||||
/* 333 S> */ B(LdaConstant), U8(5),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(Star), R(8),
|
||||
/* 378 S> */ B(LdaConstant), U8(6),
|
||||
B(Star), R(9),
|
||||
@ -273,7 +273,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
|
||||
B(Ldar), R(9),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(5),
|
||||
B(Star), R(5),
|
||||
B(CreateClosure), U8(22), U8(10), U8(2),
|
||||
|
@ -22,7 +22,7 @@ parameter count: 1
|
||||
bytecode array length: 36
|
||||
bytecodes: [
|
||||
/* 51 E> */ B(StackCheck),
|
||||
/* 56 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
/* 56 S> */ B(LdaCurrentContextSlot), U8(5),
|
||||
B(TestReferenceEqual), R(this),
|
||||
B(Mov), R(this), R(1),
|
||||
B(JumpIfTrue), U8(18),
|
||||
@ -32,7 +32,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2),
|
||||
B(Throw),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(0),
|
||||
/* 70 E> */ B(CallAnyReceiver), R(0), R(1), U8(1), U8(0),
|
||||
/* 73 S> */ B(Return),
|
||||
@ -120,9 +120,9 @@ parameter count: 1
|
||||
bytecode array length: 143
|
||||
bytecodes: [
|
||||
/* 81 E> */ B(StackCheck),
|
||||
/* 90 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 90 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(1),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 94 E> */ B(TestReferenceEqual), R(this),
|
||||
B(Mov), R(this), R(0),
|
||||
B(JumpIfTrue), U8(18),
|
||||
@ -142,9 +142,9 @@ bytecodes: [
|
||||
B(CallProperty1), R(3), R(0), R(2), U8(3),
|
||||
/* 105 S> */ B(LdaSmi), I8(1),
|
||||
B(Star), R(0),
|
||||
B(LdaCurrentContextSlot), U8(3),
|
||||
B(Star), R(2),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(2),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 109 E> */ B(TestReferenceEqual), R(this),
|
||||
B(Mov), R(this), R(1),
|
||||
B(JumpIfTrue), U8(18),
|
||||
@ -157,9 +157,9 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kLoadPrivateSetter), R(2), U8(1),
|
||||
B(Star), R(3),
|
||||
B(CallProperty1), R(3), R(1), R(0), U8(5),
|
||||
/* 122 S> */ B(LdaCurrentContextSlot), U8(3),
|
||||
/* 122 S> */ B(LdaCurrentContextSlot), U8(4),
|
||||
B(Star), R(1),
|
||||
B(LdaCurrentContextSlot), U8(4),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
/* 133 E> */ B(TestReferenceEqual), R(this),
|
||||
B(Mov), R(this), R(0),
|
||||
B(JumpIfTrue), U8(18),
|
||||
|
@ -31,7 +31,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3),
|
||||
B(Star), R(3),
|
||||
B(CreateClosure), U8(3), U8(1), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(4), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -75,7 +75,7 @@ bytecodes: [
|
||||
B(LdaNull),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -119,7 +119,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(3), U8(1), U8(2),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -164,7 +164,7 @@ bytecodes: [
|
||||
B(CreateClosure), U8(4), U8(2), U8(2),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(2), R(0),
|
||||
B(LdaUndefined),
|
||||
@ -199,7 +199,7 @@ bytecodes: [
|
||||
B(LdaConstant), U8(2),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(3), U8(1),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(6),
|
||||
B(CreateClosure), U8(3), U8(0), U8(2),
|
||||
@ -210,9 +210,9 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3),
|
||||
B(Star), R(4),
|
||||
B(CreateClosure), U8(4), U8(1), U8(2),
|
||||
B(StaCurrentContextSlot), U8(3),
|
||||
B(CreateClosure), U8(5), U8(2), U8(2),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
B(CreateClosure), U8(5), U8(2), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(PopContext), R(1),
|
||||
B(Mov), R(5), R(0),
|
||||
B(LdaUndefined),
|
||||
|
@ -59,14 +59,13 @@ namespace interpreter {
|
||||
#define REPEAT_64_UNIQUE_VARS() REPEAT_32_UNIQUE_VARS() REPEAT_32_UNIQUE_VARS()
|
||||
#define REPEAT_128_UNIQUE_VARS() REPEAT_64_UNIQUE_VARS() REPEAT_64_UNIQUE_VARS()
|
||||
|
||||
#define REPEAT_251_UNIQUE_VARS() \
|
||||
#define REPEAT_250_UNIQUE_VARS() \
|
||||
REPEAT_128_UNIQUE_VARS() \
|
||||
REPEAT_64_UNIQUE_VARS() \
|
||||
REPEAT_32_UNIQUE_VARS() \
|
||||
REPEAT_16_UNIQUE_VARS() \
|
||||
REPEAT_8_UNIQUE_VARS() \
|
||||
UNIQUE_VAR() \
|
||||
UNIQUE_VAR() \
|
||||
UNIQUE_VAR()
|
||||
|
||||
#define REPEAT_2_LOAD_UNIQUE_PROPERTY() \
|
||||
@ -1737,10 +1736,10 @@ TEST(CallNew) {
|
||||
}
|
||||
|
||||
TEST(ContextVariables) {
|
||||
// The wide check below relies on MIN_CONTEXT_SLOTS + 3 + 250 == 256, if this
|
||||
// The wide check below relies on MIN_CONTEXT_SLOTS + 3 + 249 == 256, if this
|
||||
// ever changes, the REPEAT_XXX should be changed to output the correct number
|
||||
// of unique variables to trigger the wide slot load / store.
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS + 3 + 250 == 256);
|
||||
STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS + 3 + 249 == 256);
|
||||
|
||||
InitializedIgnitionHandleScope scope;
|
||||
BytecodeExpectationsPrinter printer(CcTest::isolate());
|
||||
@ -1758,7 +1757,7 @@ TEST(ContextVariables) {
|
||||
"{ let b = 2; return function() { a + b; }; }\n",
|
||||
|
||||
"'use strict';\n"
|
||||
REPEAT_251_UNIQUE_VARS()
|
||||
REPEAT_250_UNIQUE_VARS()
|
||||
"eval();\n"
|
||||
"var b = 100;\n"
|
||||
"return b\n",
|
||||
@ -3549,7 +3548,7 @@ TEST(TemplateLiterals) {
|
||||
#undef REPEAT_32_UNIQUE_VARS
|
||||
#undef REPEAT_64_UNIQUE_VARS
|
||||
#undef REPEAT_128_UNIQUE_VARS
|
||||
#undef REPEAT_251_UNIQUE_VARS
|
||||
#undef REPEAT_250_UNIQUE_VARS
|
||||
#undef LOAD_UNIQUE_PROPERTY
|
||||
#undef REPEAT_2_LOAD_UNIQUE_PROPERTY
|
||||
#undef REPEAT_4_LOAD_UNIQUE_PROPERTY
|
||||
|
@ -193,6 +193,8 @@ consts_misc = [
|
||||
|
||||
{ 'name': 'context_idx_scope_info',
|
||||
'value': 'Context::SCOPE_INFO_INDEX' },
|
||||
{ 'name': 'context_idx_native',
|
||||
'value': 'Context::NATIVE_CONTEXT_INDEX' },
|
||||
{ 'name': 'context_idx_prev',
|
||||
'value': 'Context::PREVIOUS_INDEX' },
|
||||
{ 'name': 'context_idx_ext',
|
||||
|
@ -212,123 +212,133 @@ KNOWN_MAPS = {
|
||||
("read_only_space", 0x00929): (131, "ScopeInfoMap"),
|
||||
("read_only_space", 0x00979): (166, "SharedFunctionInfoMap"),
|
||||
("read_only_space", 0x009c9): (154, "CodeMap"),
|
||||
("read_only_space", 0x00a19): (153, "CellMap"),
|
||||
("read_only_space", 0x00a69): (165, "GlobalPropertyCellMap"),
|
||||
("read_only_space", 0x00ab9): (70, "ForeignMap"),
|
||||
("read_only_space", 0x00b09): (152, "TransitionArrayMap"),
|
||||
("read_only_space", 0x00b59): (45, "ThinOneByteStringMap"),
|
||||
("read_only_space", 0x00a19): (141, "FunctionContextMap"),
|
||||
("read_only_space", 0x00a69): (153, "CellMap"),
|
||||
("read_only_space", 0x00ab9): (165, "GlobalPropertyCellMap"),
|
||||
("read_only_space", 0x00b09): (70, "ForeignMap"),
|
||||
("read_only_space", 0x00b59): (152, "TransitionArrayMap"),
|
||||
("read_only_space", 0x00ba9): (159, "FeedbackVectorMap"),
|
||||
("read_only_space", 0x00c49): (67, "ArgumentsMarkerMap"),
|
||||
("read_only_space", 0x00ce9): (67, "ExceptionMap"),
|
||||
("read_only_space", 0x00d89): (67, "TerminationExceptionMap"),
|
||||
("read_only_space", 0x00e31): (67, "OptimizedOutMap"),
|
||||
("read_only_space", 0x00ed1): (67, "StaleRegisterMap"),
|
||||
("read_only_space", 0x00f41): (132, "ScriptContextTableMap"),
|
||||
("read_only_space", 0x00f91): (129, "ClosureFeedbackCellArrayMap"),
|
||||
("read_only_space", 0x00fe1): (158, "FeedbackMetadataArrayMap"),
|
||||
("read_only_space", 0x01031): (118, "ArrayListMap"),
|
||||
("read_only_space", 0x01081): (65, "BigIntMap"),
|
||||
("read_only_space", 0x010d1): (130, "ObjectBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x01121): (134, "BytecodeArrayMap"),
|
||||
("read_only_space", 0x01171): (155, "CodeDataContainerMap"),
|
||||
("read_only_space", 0x011c1): (135, "FixedDoubleArrayMap"),
|
||||
("read_only_space", 0x01211): (121, "GlobalDictionaryMap"),
|
||||
("read_only_space", 0x01261): (95, "ManyClosuresCellMap"),
|
||||
("read_only_space", 0x012b1): (118, "ModuleInfoMap"),
|
||||
("read_only_space", 0x01301): (122, "NameDictionaryMap"),
|
||||
("read_only_space", 0x01351): (95, "NoClosuresCellMap"),
|
||||
("read_only_space", 0x013a1): (123, "NumberDictionaryMap"),
|
||||
("read_only_space", 0x013f1): (95, "OneClosureCellMap"),
|
||||
("read_only_space", 0x01441): (124, "OrderedHashMapMap"),
|
||||
("read_only_space", 0x01491): (125, "OrderedHashSetMap"),
|
||||
("read_only_space", 0x014e1): (126, "OrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x01531): (163, "PreparseDataMap"),
|
||||
("read_only_space", 0x01581): (164, "PropertyArrayMap"),
|
||||
("read_only_space", 0x015d1): (91, "SideEffectCallHandlerInfoMap"),
|
||||
("read_only_space", 0x01621): (91, "SideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x01671): (91, "NextCallSideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x016c1): (127, "SimpleNumberDictionaryMap"),
|
||||
("read_only_space", 0x01711): (118, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x01761): (146, "SmallOrderedHashMapMap"),
|
||||
("read_only_space", 0x017b1): (147, "SmallOrderedHashSetMap"),
|
||||
("read_only_space", 0x01801): (148, "SmallOrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x01851): (68, "SourceTextModuleMap"),
|
||||
("read_only_space", 0x018a1): (128, "StringTableMap"),
|
||||
("read_only_space", 0x018f1): (69, "SyntheticModuleMap"),
|
||||
("read_only_space", 0x01941): (150, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x01991): (149, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x019e1): (167, "WeakArrayListMap"),
|
||||
("read_only_space", 0x01a31): (120, "EphemeronHashTableMap"),
|
||||
("read_only_space", 0x01a81): (157, "EmbedderDataArrayMap"),
|
||||
("read_only_space", 0x01ad1): (168, "WeakCellMap"),
|
||||
("read_only_space", 0x01b21): (58, "NativeSourceStringMap"),
|
||||
("read_only_space", 0x01b71): (32, "StringMap"),
|
||||
("read_only_space", 0x01bc1): (41, "ConsOneByteStringMap"),
|
||||
("read_only_space", 0x01c11): (33, "ConsStringMap"),
|
||||
("read_only_space", 0x01c61): (37, "ThinStringMap"),
|
||||
("read_only_space", 0x01cb1): (35, "SlicedStringMap"),
|
||||
("read_only_space", 0x01d01): (43, "SlicedOneByteStringMap"),
|
||||
("read_only_space", 0x01d51): (34, "ExternalStringMap"),
|
||||
("read_only_space", 0x01da1): (42, "ExternalOneByteStringMap"),
|
||||
("read_only_space", 0x01df1): (50, "UncachedExternalStringMap"),
|
||||
("read_only_space", 0x01e41): (0, "InternalizedStringMap"),
|
||||
("read_only_space", 0x01e91): (2, "ExternalInternalizedStringMap"),
|
||||
("read_only_space", 0x01ee1): (10, "ExternalOneByteInternalizedStringMap"),
|
||||
("read_only_space", 0x01f31): (18, "UncachedExternalInternalizedStringMap"),
|
||||
("read_only_space", 0x01f81): (26, "UncachedExternalOneByteInternalizedStringMap"),
|
||||
("read_only_space", 0x01fd1): (58, "UncachedExternalOneByteStringMap"),
|
||||
("read_only_space", 0x02021): (67, "SelfReferenceMarkerMap"),
|
||||
("read_only_space", 0x02089): (94, "EnumCacheMap"),
|
||||
("read_only_space", 0x02129): (88, "ArrayBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x02319): (97, "InterceptorInfoMap"),
|
||||
("read_only_space", 0x04c59): (71, "PromiseFulfillReactionJobTaskMap"),
|
||||
("read_only_space", 0x04ca9): (72, "PromiseRejectReactionJobTaskMap"),
|
||||
("read_only_space", 0x04cf9): (73, "CallableTaskMap"),
|
||||
("read_only_space", 0x04d49): (74, "CallbackTaskMap"),
|
||||
("read_only_space", 0x04d99): (75, "PromiseResolveThenableJobTaskMap"),
|
||||
("read_only_space", 0x04de9): (78, "FunctionTemplateInfoMap"),
|
||||
("read_only_space", 0x04e39): (79, "ObjectTemplateInfoMap"),
|
||||
("read_only_space", 0x04e89): (80, "Tuple2Map"),
|
||||
("read_only_space", 0x04ed9): (81, "Tuple3Map"),
|
||||
("read_only_space", 0x04f29): (82, "AccessCheckInfoMap"),
|
||||
("read_only_space", 0x04f79): (83, "AccessorInfoMap"),
|
||||
("read_only_space", 0x04fc9): (84, "AccessorPairMap"),
|
||||
("read_only_space", 0x05019): (85, "AliasedArgumentsEntryMap"),
|
||||
("read_only_space", 0x05069): (86, "AllocationMementoMap"),
|
||||
("read_only_space", 0x050b9): (89, "AsmWasmDataMap"),
|
||||
("read_only_space", 0x05109): (90, "AsyncGeneratorRequestMap"),
|
||||
("read_only_space", 0x05159): (92, "ClassPositionsMap"),
|
||||
("read_only_space", 0x051a9): (93, "DebugInfoMap"),
|
||||
("read_only_space", 0x051f9): (96, "FunctionTemplateRareDataMap"),
|
||||
("read_only_space", 0x05249): (99, "InterpreterDataMap"),
|
||||
("read_only_space", 0x05299): (100, "PromiseCapabilityMap"),
|
||||
("read_only_space", 0x052e9): (101, "PromiseReactionMap"),
|
||||
("read_only_space", 0x05339): (102, "PrototypeInfoMap"),
|
||||
("read_only_space", 0x05389): (103, "ScriptMap"),
|
||||
("read_only_space", 0x053d9): (107, "SourcePositionTableWithFrameCacheMap"),
|
||||
("read_only_space", 0x05429): (108, "SourceTextModuleInfoEntryMap"),
|
||||
("read_only_space", 0x05479): (109, "StackFrameInfoMap"),
|
||||
("read_only_space", 0x054c9): (110, "StackTraceFrameMap"),
|
||||
("read_only_space", 0x05519): (111, "TemplateObjectDescriptionMap"),
|
||||
("read_only_space", 0x05569): (112, "WasmCapiFunctionDataMap"),
|
||||
("read_only_space", 0x055b9): (113, "WasmDebugInfoMap"),
|
||||
("read_only_space", 0x05609): (114, "WasmExceptionTagMap"),
|
||||
("read_only_space", 0x05659): (115, "WasmExportedFunctionDataMap"),
|
||||
("read_only_space", 0x056a9): (116, "WasmIndirectFunctionTableMap"),
|
||||
("read_only_space", 0x056f9): (117, "WasmJSFunctionDataMap"),
|
||||
("read_only_space", 0x05749): (98, "InternalClassMap"),
|
||||
("read_only_space", 0x05799): (105, "SmiPairMap"),
|
||||
("read_only_space", 0x057e9): (104, "SmiBoxMap"),
|
||||
("read_only_space", 0x05839): (106, "SortStateMap"),
|
||||
("read_only_space", 0x05889): (87, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x058d9): (87, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x05929): (76, "LoadHandler1Map"),
|
||||
("read_only_space", 0x05979): (76, "LoadHandler2Map"),
|
||||
("read_only_space", 0x059c9): (76, "LoadHandler3Map"),
|
||||
("read_only_space", 0x05a19): (77, "StoreHandler0Map"),
|
||||
("read_only_space", 0x05a69): (77, "StoreHandler1Map"),
|
||||
("read_only_space", 0x05ab9): (77, "StoreHandler2Map"),
|
||||
("read_only_space", 0x05b09): (77, "StoreHandler3Map"),
|
||||
("read_only_space", 0x00f41): (143, "NativeContextMap"),
|
||||
("read_only_space", 0x00f91): (142, "ModuleContextMap"),
|
||||
("read_only_space", 0x00fe1): (140, "EvalContextMap"),
|
||||
("read_only_space", 0x01031): (144, "ScriptContextMap"),
|
||||
("read_only_space", 0x01081): (136, "AwaitContextMap"),
|
||||
("read_only_space", 0x010d1): (137, "BlockContextMap"),
|
||||
("read_only_space", 0x01121): (138, "CatchContextMap"),
|
||||
("read_only_space", 0x01171): (145, "WithContextMap"),
|
||||
("read_only_space", 0x011c1): (139, "DebugEvaluateContextMap"),
|
||||
("read_only_space", 0x01211): (132, "ScriptContextTableMap"),
|
||||
("read_only_space", 0x01261): (129, "ClosureFeedbackCellArrayMap"),
|
||||
("read_only_space", 0x012b1): (158, "FeedbackMetadataArrayMap"),
|
||||
("read_only_space", 0x01301): (118, "ArrayListMap"),
|
||||
("read_only_space", 0x01351): (65, "BigIntMap"),
|
||||
("read_only_space", 0x013a1): (130, "ObjectBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x013f1): (134, "BytecodeArrayMap"),
|
||||
("read_only_space", 0x01441): (155, "CodeDataContainerMap"),
|
||||
("read_only_space", 0x01491): (135, "FixedDoubleArrayMap"),
|
||||
("read_only_space", 0x014e1): (121, "GlobalDictionaryMap"),
|
||||
("read_only_space", 0x01531): (95, "ManyClosuresCellMap"),
|
||||
("read_only_space", 0x01581): (118, "ModuleInfoMap"),
|
||||
("read_only_space", 0x015d1): (122, "NameDictionaryMap"),
|
||||
("read_only_space", 0x01621): (95, "NoClosuresCellMap"),
|
||||
("read_only_space", 0x01671): (123, "NumberDictionaryMap"),
|
||||
("read_only_space", 0x016c1): (95, "OneClosureCellMap"),
|
||||
("read_only_space", 0x01711): (124, "OrderedHashMapMap"),
|
||||
("read_only_space", 0x01761): (125, "OrderedHashSetMap"),
|
||||
("read_only_space", 0x017b1): (126, "OrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x01801): (163, "PreparseDataMap"),
|
||||
("read_only_space", 0x01851): (164, "PropertyArrayMap"),
|
||||
("read_only_space", 0x018a1): (91, "SideEffectCallHandlerInfoMap"),
|
||||
("read_only_space", 0x018f1): (91, "SideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x01941): (91, "NextCallSideEffectFreeCallHandlerInfoMap"),
|
||||
("read_only_space", 0x01991): (127, "SimpleNumberDictionaryMap"),
|
||||
("read_only_space", 0x019e1): (118, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x01a31): (146, "SmallOrderedHashMapMap"),
|
||||
("read_only_space", 0x01a81): (147, "SmallOrderedHashSetMap"),
|
||||
("read_only_space", 0x01ad1): (148, "SmallOrderedNameDictionaryMap"),
|
||||
("read_only_space", 0x01b21): (68, "SourceTextModuleMap"),
|
||||
("read_only_space", 0x01b71): (128, "StringTableMap"),
|
||||
("read_only_space", 0x01bc1): (69, "SyntheticModuleMap"),
|
||||
("read_only_space", 0x01c11): (150, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x01c61): (149, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x01cb1): (167, "WeakArrayListMap"),
|
||||
("read_only_space", 0x01d01): (120, "EphemeronHashTableMap"),
|
||||
("read_only_space", 0x01d51): (157, "EmbedderDataArrayMap"),
|
||||
("read_only_space", 0x01da1): (168, "WeakCellMap"),
|
||||
("read_only_space", 0x01df1): (58, "NativeSourceStringMap"),
|
||||
("read_only_space", 0x01e41): (32, "StringMap"),
|
||||
("read_only_space", 0x01e91): (41, "ConsOneByteStringMap"),
|
||||
("read_only_space", 0x01ee1): (33, "ConsStringMap"),
|
||||
("read_only_space", 0x01f31): (45, "ThinOneByteStringMap"),
|
||||
("read_only_space", 0x01f81): (37, "ThinStringMap"),
|
||||
("read_only_space", 0x01fd1): (35, "SlicedStringMap"),
|
||||
("read_only_space", 0x02021): (43, "SlicedOneByteStringMap"),
|
||||
("read_only_space", 0x02071): (34, "ExternalStringMap"),
|
||||
("read_only_space", 0x020c1): (42, "ExternalOneByteStringMap"),
|
||||
("read_only_space", 0x02111): (50, "UncachedExternalStringMap"),
|
||||
("read_only_space", 0x02161): (0, "InternalizedStringMap"),
|
||||
("read_only_space", 0x021b1): (2, "ExternalInternalizedStringMap"),
|
||||
("read_only_space", 0x02201): (10, "ExternalOneByteInternalizedStringMap"),
|
||||
("read_only_space", 0x02251): (18, "UncachedExternalInternalizedStringMap"),
|
||||
("read_only_space", 0x022a1): (26, "UncachedExternalOneByteInternalizedStringMap"),
|
||||
("read_only_space", 0x022f1): (58, "UncachedExternalOneByteStringMap"),
|
||||
("read_only_space", 0x02341): (67, "SelfReferenceMarkerMap"),
|
||||
("read_only_space", 0x023a9): (94, "EnumCacheMap"),
|
||||
("read_only_space", 0x02449): (88, "ArrayBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x02639): (97, "InterceptorInfoMap"),
|
||||
("read_only_space", 0x04f79): (71, "PromiseFulfillReactionJobTaskMap"),
|
||||
("read_only_space", 0x04fc9): (72, "PromiseRejectReactionJobTaskMap"),
|
||||
("read_only_space", 0x05019): (73, "CallableTaskMap"),
|
||||
("read_only_space", 0x05069): (74, "CallbackTaskMap"),
|
||||
("read_only_space", 0x050b9): (75, "PromiseResolveThenableJobTaskMap"),
|
||||
("read_only_space", 0x05109): (78, "FunctionTemplateInfoMap"),
|
||||
("read_only_space", 0x05159): (79, "ObjectTemplateInfoMap"),
|
||||
("read_only_space", 0x051a9): (80, "Tuple2Map"),
|
||||
("read_only_space", 0x051f9): (81, "Tuple3Map"),
|
||||
("read_only_space", 0x05249): (82, "AccessCheckInfoMap"),
|
||||
("read_only_space", 0x05299): (83, "AccessorInfoMap"),
|
||||
("read_only_space", 0x052e9): (84, "AccessorPairMap"),
|
||||
("read_only_space", 0x05339): (85, "AliasedArgumentsEntryMap"),
|
||||
("read_only_space", 0x05389): (86, "AllocationMementoMap"),
|
||||
("read_only_space", 0x053d9): (89, "AsmWasmDataMap"),
|
||||
("read_only_space", 0x05429): (90, "AsyncGeneratorRequestMap"),
|
||||
("read_only_space", 0x05479): (92, "ClassPositionsMap"),
|
||||
("read_only_space", 0x054c9): (93, "DebugInfoMap"),
|
||||
("read_only_space", 0x05519): (96, "FunctionTemplateRareDataMap"),
|
||||
("read_only_space", 0x05569): (99, "InterpreterDataMap"),
|
||||
("read_only_space", 0x055b9): (100, "PromiseCapabilityMap"),
|
||||
("read_only_space", 0x05609): (101, "PromiseReactionMap"),
|
||||
("read_only_space", 0x05659): (102, "PrototypeInfoMap"),
|
||||
("read_only_space", 0x056a9): (103, "ScriptMap"),
|
||||
("read_only_space", 0x056f9): (107, "SourcePositionTableWithFrameCacheMap"),
|
||||
("read_only_space", 0x05749): (108, "SourceTextModuleInfoEntryMap"),
|
||||
("read_only_space", 0x05799): (109, "StackFrameInfoMap"),
|
||||
("read_only_space", 0x057e9): (110, "StackTraceFrameMap"),
|
||||
("read_only_space", 0x05839): (111, "TemplateObjectDescriptionMap"),
|
||||
("read_only_space", 0x05889): (112, "WasmCapiFunctionDataMap"),
|
||||
("read_only_space", 0x058d9): (113, "WasmDebugInfoMap"),
|
||||
("read_only_space", 0x05929): (114, "WasmExceptionTagMap"),
|
||||
("read_only_space", 0x05979): (115, "WasmExportedFunctionDataMap"),
|
||||
("read_only_space", 0x059c9): (116, "WasmIndirectFunctionTableMap"),
|
||||
("read_only_space", 0x05a19): (117, "WasmJSFunctionDataMap"),
|
||||
("read_only_space", 0x05a69): (98, "InternalClassMap"),
|
||||
("read_only_space", 0x05ab9): (105, "SmiPairMap"),
|
||||
("read_only_space", 0x05b09): (104, "SmiBoxMap"),
|
||||
("read_only_space", 0x05b59): (106, "SortStateMap"),
|
||||
("read_only_space", 0x05ba9): (87, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x05bf9): (87, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x05c49): (76, "LoadHandler1Map"),
|
||||
("read_only_space", 0x05c99): (76, "LoadHandler2Map"),
|
||||
("read_only_space", 0x05ce9): (76, "LoadHandler3Map"),
|
||||
("read_only_space", 0x05d39): (77, "StoreHandler0Map"),
|
||||
("read_only_space", 0x05d89): (77, "StoreHandler1Map"),
|
||||
("read_only_space", 0x05dd9): (77, "StoreHandler2Map"),
|
||||
("read_only_space", 0x05e29): (77, "StoreHandler3Map"),
|
||||
("map_space", 0x00121): (1057, "ExternalMap"),
|
||||
("map_space", 0x00171): (1072, "JSMessageObjectMap"),
|
||||
}
|
||||
@ -353,31 +363,31 @@ KNOWN_OBJECTS = {
|
||||
("read_only_space", 0x00d59): "TerminationException",
|
||||
("read_only_space", 0x00e01): "OptimizedOut",
|
||||
("read_only_space", 0x00ea1): "StaleRegister",
|
||||
("read_only_space", 0x02071): "EmptyEnumCache",
|
||||
("read_only_space", 0x020d9): "EmptyPropertyArray",
|
||||
("read_only_space", 0x020e9): "EmptyByteArray",
|
||||
("read_only_space", 0x020f9): "EmptyObjectBoilerplateDescription",
|
||||
("read_only_space", 0x02111): "EmptyArrayBoilerplateDescription",
|
||||
("read_only_space", 0x02179): "EmptyClosureFeedbackCellArray",
|
||||
("read_only_space", 0x02189): "EmptySloppyArgumentsElements",
|
||||
("read_only_space", 0x021a9): "EmptySlowElementDictionary",
|
||||
("read_only_space", 0x021f1): "EmptyOrderedHashMap",
|
||||
("read_only_space", 0x02219): "EmptyOrderedHashSet",
|
||||
("read_only_space", 0x02241): "EmptyFeedbackMetadata",
|
||||
("read_only_space", 0x02251): "EmptyPropertyCell",
|
||||
("read_only_space", 0x02279): "EmptyPropertyDictionary",
|
||||
("read_only_space", 0x022c9): "NoOpInterceptorInfo",
|
||||
("read_only_space", 0x02369): "EmptyWeakArrayList",
|
||||
("read_only_space", 0x02381): "InfinityValue",
|
||||
("read_only_space", 0x02391): "MinusZeroValue",
|
||||
("read_only_space", 0x023a1): "MinusInfinityValue",
|
||||
("read_only_space", 0x023b1): "SelfReferenceMarker",
|
||||
("read_only_space", 0x02409): "OffHeapTrampolineRelocationInfo",
|
||||
("read_only_space", 0x02421): "TrampolineTrivialCodeDataContainer",
|
||||
("read_only_space", 0x02439): "TrampolinePromiseRejectionCodeDataContainer",
|
||||
("read_only_space", 0x02451): "GlobalThisBindingScopeInfo",
|
||||
("read_only_space", 0x024b9): "EmptyFunctionScopeInfo",
|
||||
("read_only_space", 0x02509): "HashSeed",
|
||||
("read_only_space", 0x02391): "EmptyEnumCache",
|
||||
("read_only_space", 0x023f9): "EmptyPropertyArray",
|
||||
("read_only_space", 0x02409): "EmptyByteArray",
|
||||
("read_only_space", 0x02419): "EmptyObjectBoilerplateDescription",
|
||||
("read_only_space", 0x02431): "EmptyArrayBoilerplateDescription",
|
||||
("read_only_space", 0x02499): "EmptyClosureFeedbackCellArray",
|
||||
("read_only_space", 0x024a9): "EmptySloppyArgumentsElements",
|
||||
("read_only_space", 0x024c9): "EmptySlowElementDictionary",
|
||||
("read_only_space", 0x02511): "EmptyOrderedHashMap",
|
||||
("read_only_space", 0x02539): "EmptyOrderedHashSet",
|
||||
("read_only_space", 0x02561): "EmptyFeedbackMetadata",
|
||||
("read_only_space", 0x02571): "EmptyPropertyCell",
|
||||
("read_only_space", 0x02599): "EmptyPropertyDictionary",
|
||||
("read_only_space", 0x025e9): "NoOpInterceptorInfo",
|
||||
("read_only_space", 0x02689): "EmptyWeakArrayList",
|
||||
("read_only_space", 0x026a1): "InfinityValue",
|
||||
("read_only_space", 0x026b1): "MinusZeroValue",
|
||||
("read_only_space", 0x026c1): "MinusInfinityValue",
|
||||
("read_only_space", 0x026d1): "SelfReferenceMarker",
|
||||
("read_only_space", 0x02729): "OffHeapTrampolineRelocationInfo",
|
||||
("read_only_space", 0x02741): "TrampolineTrivialCodeDataContainer",
|
||||
("read_only_space", 0x02759): "TrampolinePromiseRejectionCodeDataContainer",
|
||||
("read_only_space", 0x02771): "GlobalThisBindingScopeInfo",
|
||||
("read_only_space", 0x027d9): "EmptyFunctionScopeInfo",
|
||||
("read_only_space", 0x02829): "HashSeed",
|
||||
("old_space", 0x00121): "ArgumentsIteratorAccessor",
|
||||
("old_space", 0x00191): "ArrayLengthAccessor",
|
||||
("old_space", 0x00201): "BoundFunctionLengthAccessor",
|
||||
|
Loading…
Reference in New Issue
Block a user