| Index: src/builtins/builtins.cc
|
| diff --git a/src/builtins/builtins.cc b/src/builtins/builtins.cc
|
| index 54f39f181f4a510ae43928d32e401827a8f67cc6..2a61dfe0d535b7f7725e12c74ba5816a2ff612ef 100644
|
| --- a/src/builtins/builtins.cc
|
| +++ b/src/builtins/builtins.cc
|
| @@ -6229,9 +6229,7 @@ BUILTIN(HandleApiCallAsConstructor) {
|
| return HandleApiCallAsFunctionOrConstructor(isolate, true, args);
|
| }
|
|
|
| -namespace {
|
| -
|
| -void Generate_LoadIC_Miss(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_LoadIC_Miss(CodeStubAssembler* assembler) {
|
| typedef compiler::Node Node;
|
|
|
| Node* receiver = assembler->Parameter(0);
|
| @@ -6244,7 +6242,7 @@ void Generate_LoadIC_Miss(CodeStubAssembler* assembler) {
|
| slot, vector);
|
| }
|
|
|
| -void Generate_LoadGlobalIC_Miss(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_LoadGlobalIC_Miss(CodeStubAssembler* assembler) {
|
| typedef compiler::Node Node;
|
|
|
| Node* slot = assembler->Parameter(0);
|
| @@ -6255,15 +6253,15 @@ void Generate_LoadGlobalIC_Miss(CodeStubAssembler* assembler) {
|
| vector);
|
| }
|
|
|
| -void Generate_LoadIC_Normal(MacroAssembler* masm) {
|
| +void Builtins::Generate_LoadIC_Normal(MacroAssembler* masm) {
|
| LoadIC::GenerateNormal(masm);
|
| }
|
|
|
| -void Generate_LoadIC_Getter_ForDeopt(MacroAssembler* masm) {
|
| +void Builtins::Generate_LoadIC_Getter_ForDeopt(MacroAssembler* masm) {
|
| NamedLoadHandlerCompiler::GenerateLoadViaGetterForDeopt(masm);
|
| }
|
|
|
| -void Generate_LoadIC_Slow(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_LoadIC_Slow(CodeStubAssembler* assembler) {
|
| typedef compiler::Node Node;
|
|
|
| Node* receiver = assembler->Parameter(0);
|
| @@ -6275,6 +6273,7 @@ void Generate_LoadIC_Slow(CodeStubAssembler* assembler) {
|
| assembler->TailCallRuntime(Runtime::kGetProperty, context, receiver, name);
|
| }
|
|
|
| +namespace {
|
| void Generate_LoadGlobalIC_Slow(CodeStubAssembler* assembler, TypeofMode mode) {
|
| typedef compiler::Node Node;
|
|
|
| @@ -6286,28 +6285,31 @@ void Generate_LoadGlobalIC_Slow(CodeStubAssembler* assembler, TypeofMode mode) {
|
| assembler->TailCallRuntime(Runtime::kGetGlobal, context, slot, vector,
|
| typeof_mode);
|
| }
|
| +} // anonymous namespace
|
|
|
| -void Generate_LoadGlobalIC_SlowInsideTypeof(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_LoadGlobalIC_SlowInsideTypeof(
|
| + CodeStubAssembler* assembler) {
|
| Generate_LoadGlobalIC_Slow(assembler, INSIDE_TYPEOF);
|
| }
|
|
|
| -void Generate_LoadGlobalIC_SlowNotInsideTypeof(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_LoadGlobalIC_SlowNotInsideTypeof(
|
| + CodeStubAssembler* assembler) {
|
| Generate_LoadGlobalIC_Slow(assembler, NOT_INSIDE_TYPEOF);
|
| }
|
|
|
| -void Generate_KeyedLoadIC_Slow(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedLoadIC_Slow(MacroAssembler* masm) {
|
| KeyedLoadIC::GenerateRuntimeGetProperty(masm);
|
| }
|
|
|
| -void Generate_KeyedLoadIC_Miss(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedLoadIC_Miss(MacroAssembler* masm) {
|
| KeyedLoadIC::GenerateMiss(masm);
|
| }
|
|
|
| -void Generate_KeyedLoadIC_Megamorphic(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedLoadIC_Megamorphic(MacroAssembler* masm) {
|
| KeyedLoadIC::GenerateMegamorphic(masm);
|
| }
|
|
|
| -void Generate_StoreIC_Miss(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_StoreIC_Miss(CodeStubAssembler* assembler) {
|
| typedef compiler::Node Node;
|
|
|
| Node* receiver = assembler->Parameter(0);
|
| @@ -6321,10 +6323,11 @@ void Generate_StoreIC_Miss(CodeStubAssembler* assembler) {
|
| value, slot, vector);
|
| }
|
|
|
| -void Generate_StoreIC_Normal(MacroAssembler* masm) {
|
| +void Builtins::Generate_StoreIC_Normal(MacroAssembler* masm) {
|
| StoreIC::GenerateNormal(masm);
|
| }
|
|
|
| +namespace {
|
| void Generate_StoreIC_Slow(CodeStubAssembler* assembler,
|
| LanguageMode language_mode) {
|
| typedef compiler::Node Node;
|
| @@ -6342,15 +6345,17 @@ void Generate_StoreIC_Slow(CodeStubAssembler* assembler,
|
| assembler->TailCallRuntime(Runtime::kSetProperty, context, receiver, name,
|
| value, lang_mode);
|
| }
|
| +} // anonymous namespace
|
|
|
| -void Generate_StoreIC_SlowSloppy(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_StoreIC_SlowSloppy(CodeStubAssembler* assembler) {
|
| Generate_StoreIC_Slow(assembler, SLOPPY);
|
| }
|
|
|
| -void Generate_StoreIC_SlowStrict(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_StoreIC_SlowStrict(CodeStubAssembler* assembler) {
|
| Generate_StoreIC_Slow(assembler, STRICT);
|
| }
|
|
|
| +namespace {
|
| // 7.1.1.1 OrdinaryToPrimitive ( O, hint )
|
| void Generate_OrdinaryToPrimitive(CodeStubAssembler* assembler,
|
| OrdinaryToPrimitiveHint hint) {
|
| @@ -6421,15 +6426,19 @@ void Generate_OrdinaryToPrimitive(CodeStubAssembler* assembler,
|
| assembler->Bind(&return_result);
|
| assembler->Return(var_result.value());
|
| }
|
| +} // anonymous namespace
|
|
|
| -void Generate_OrdinaryToPrimitive_Number(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_OrdinaryToPrimitive_Number(
|
| + CodeStubAssembler* assembler) {
|
| Generate_OrdinaryToPrimitive(assembler, OrdinaryToPrimitiveHint::kNumber);
|
| }
|
|
|
| -void Generate_OrdinaryToPrimitive_String(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_OrdinaryToPrimitive_String(
|
| + CodeStubAssembler* assembler) {
|
| Generate_OrdinaryToPrimitive(assembler, OrdinaryToPrimitiveHint::kString);
|
| }
|
|
|
| +namespace {
|
| // ES6 section 7.1.1 ToPrimitive ( input [ , PreferredType ] )
|
| void Generate_NonPrimitiveToPrimitive(CodeStubAssembler* assembler,
|
| ToPrimitiveHint hint) {
|
| @@ -6498,21 +6507,25 @@ void Generate_NonPrimitiveToPrimitive(CodeStubAssembler* assembler,
|
| assembler->TailCallStub(callable, context, input);
|
| }
|
| }
|
| +} // anonymous namespace
|
|
|
| -void Generate_NonPrimitiveToPrimitive_Default(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_NonPrimitiveToPrimitive_Default(
|
| + CodeStubAssembler* assembler) {
|
| Generate_NonPrimitiveToPrimitive(assembler, ToPrimitiveHint::kDefault);
|
| }
|
|
|
| -void Generate_NonPrimitiveToPrimitive_Number(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_NonPrimitiveToPrimitive_Number(
|
| + CodeStubAssembler* assembler) {
|
| Generate_NonPrimitiveToPrimitive(assembler, ToPrimitiveHint::kNumber);
|
| }
|
|
|
| -void Generate_NonPrimitiveToPrimitive_String(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_NonPrimitiveToPrimitive_String(
|
| + CodeStubAssembler* assembler) {
|
| Generate_NonPrimitiveToPrimitive(assembler, ToPrimitiveHint::kString);
|
| }
|
|
|
| // ES6 section 7.1.3 ToNumber ( argument )
|
| -void Generate_NonNumberToNumber(CodeStubAssembler* assembler) {
|
| +void Builtins::Generate_NonNumberToNumber(CodeStubAssembler* assembler) {
|
| typedef CodeStubAssembler::Label Label;
|
| typedef compiler::Node Node;
|
| typedef CodeStubAssembler::Variable Variable;
|
| @@ -6609,42 +6622,40 @@ void Generate_NonNumberToNumber(CodeStubAssembler* assembler) {
|
| }
|
| }
|
|
|
| -void Generate_KeyedStoreIC_Slow(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedStoreIC_Slow(MacroAssembler* masm) {
|
| ElementHandlerCompiler::GenerateStoreSlow(masm);
|
| }
|
|
|
| -void Generate_StoreIC_Setter_ForDeopt(MacroAssembler* masm) {
|
| +void Builtins::Generate_StoreIC_Setter_ForDeopt(MacroAssembler* masm) {
|
| NamedStoreHandlerCompiler::GenerateStoreViaSetterForDeopt(masm);
|
| }
|
|
|
| -void Generate_KeyedStoreIC_Megamorphic(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedStoreIC_Megamorphic(MacroAssembler* masm) {
|
| KeyedStoreIC::GenerateMegamorphic(masm, SLOPPY);
|
| }
|
|
|
| -void Generate_KeyedStoreIC_Megamorphic_Strict(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedStoreIC_Megamorphic_Strict(MacroAssembler* masm) {
|
| KeyedStoreIC::GenerateMegamorphic(masm, STRICT);
|
| }
|
|
|
| -void Generate_KeyedStoreIC_Miss(MacroAssembler* masm) {
|
| +void Builtins::Generate_KeyedStoreIC_Miss(MacroAssembler* masm) {
|
| KeyedStoreIC::GenerateMiss(masm);
|
| }
|
|
|
| -void Generate_Return_DebugBreak(MacroAssembler* masm) {
|
| +void Builtins::Generate_Return_DebugBreak(MacroAssembler* masm) {
|
| DebugCodegen::GenerateDebugBreakStub(masm,
|
| DebugCodegen::SAVE_RESULT_REGISTER);
|
| }
|
|
|
| -void Generate_Slot_DebugBreak(MacroAssembler* masm) {
|
| +void Builtins::Generate_Slot_DebugBreak(MacroAssembler* masm) {
|
| DebugCodegen::GenerateDebugBreakStub(masm,
|
| DebugCodegen::IGNORE_RESULT_REGISTER);
|
| }
|
|
|
| -void Generate_FrameDropper_LiveEdit(MacroAssembler* masm) {
|
| +void Builtins::Generate_FrameDropper_LiveEdit(MacroAssembler* masm) {
|
| DebugCodegen::GenerateFrameDropperLiveEdit(masm);
|
| }
|
|
|
| -} // namespace
|
| -
|
| Builtins::Builtins() : initialized_(false) {
|
| memset(builtins_, 0, sizeof(builtins_[0]) * builtin_count);
|
| }
|
| @@ -7069,6 +7080,107 @@ void Builtins::Generate_AtomicsStore(CodeStubAssembler* a) {
|
| a->Return(a->Int32Constant(0));
|
| }
|
|
|
| +void Builtins::Generate_CallFunction_ReceiverIsNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_CallFunction_ReceiverIsNotNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kNotNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_CallFunction_ReceiverIsAny(MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kAny,
|
| + TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCallFunction_ReceiverIsNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kNullOrUndefined,
|
| + TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCallFunction_ReceiverIsNotNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kNotNullOrUndefined,
|
| + TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCallFunction_ReceiverIsAny(MacroAssembler* masm) {
|
| + Generate_CallFunction(masm, ConvertReceiverMode::kAny, TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_CallBoundFunction(MacroAssembler* masm) {
|
| + Generate_CallBoundFunctionImpl(masm, TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCallBoundFunction(MacroAssembler* masm) {
|
| + Generate_CallBoundFunctionImpl(masm, TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_Call_ReceiverIsNullOrUndefined(MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_Call_ReceiverIsNotNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kNotNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_Call_ReceiverIsAny(MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kAny, TailCallMode::kDisallow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCall_ReceiverIsNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kNullOrUndefined,
|
| + TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCall_ReceiverIsNotNullOrUndefined(
|
| + MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kNotNullOrUndefined,
|
| + TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_TailCall_ReceiverIsAny(MacroAssembler* masm) {
|
| + Generate_Call(masm, ConvertReceiverMode::kAny, TailCallMode::kAllow);
|
| +}
|
| +
|
| +void Builtins::Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kDisallow,
|
| + CallableType::kAny);
|
| +}
|
| +void Builtins::Generate_InterpreterPushArgsAndTailCall(MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow,
|
| + CallableType::kAny);
|
| +}
|
| +
|
| +void Builtins::Generate_InterpreterPushArgsAndCallFunction(
|
| + MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kDisallow,
|
| + CallableType::kJSFunction);
|
| +}
|
| +
|
| +void Builtins::Generate_InterpreterPushArgsAndTailCallFunction(
|
| + MacroAssembler* masm) {
|
| + return Generate_InterpreterPushArgsAndCallImpl(masm, TailCallMode::kAllow,
|
| + CallableType::kJSFunction);
|
| +}
|
| +
|
| +void Builtins::Generate_MathMax(MacroAssembler* masm) {
|
| + Generate_MathMaxMin(masm, MathMaxMinKind::kMax);
|
| +}
|
| +
|
| +void Builtins::Generate_MathMin(MacroAssembler* masm) {
|
| + Generate_MathMaxMin(masm, MathMaxMinKind::kMin);
|
| +}
|
| +
|
| #define DEFINE_BUILTIN_ACCESSOR(Name, ...) \
|
| Handle<Code> Builtins::Name() { \
|
| Code** code_address = reinterpret_cast<Code**>(builtin_address(k##Name)); \
|
|
|