diff options
Diffstat (limited to 'deps/v8/src/builtins.cc')
-rw-r--r-- | deps/v8/src/builtins.cc | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/deps/v8/src/builtins.cc b/deps/v8/src/builtins.cc index 4a5cd03b6f..9290852dc9 100644 --- a/deps/v8/src/builtins.cc +++ b/deps/v8/src/builtins.cc @@ -132,7 +132,6 @@ BUILTIN_LIST_C(DEF_ARG_TYPE) MUST_USE_RESULT static MaybeObject* Builtin_##name( \ int args_length, Object** args_object, Isolate* isolate) { \ name##ArgumentsType args(args_length, args_object); \ - ASSERT(isolate == Isolate::Current()); \ args.Verify(); \ return Builtin_Impl_##name(args, isolate); \ } \ @@ -304,11 +303,11 @@ static FixedArrayBase* LeftTrimFixedArray(Heap* heap, } else { entry_size = kDoubleSize; } - ASSERT(elms->map() != HEAP->fixed_cow_array_map()); + ASSERT(elms->map() != heap->fixed_cow_array_map()); // For now this trick is only applied to fixed arrays in new and paged space. // In large object space the object's start must coincide with chunk // and thus the trick is just not applicable. - ASSERT(!HEAP->lo_space()->Contains(elms)); + ASSERT(!heap->lo_space()->Contains(elms)); STATIC_ASSERT(FixedArrayBase::kMapOffset == 0); STATIC_ASSERT(FixedArrayBase::kLengthOffset == kPointerSize); @@ -448,7 +447,8 @@ MUST_USE_RESULT static MaybeObject* CallJsBuiltin( argv[i] = args.at<Object>(i + 1); } bool pending_exception; - Handle<Object> result = Execution::Call(function, + Handle<Object> result = Execution::Call(isolate, + function, args.receiver(), argc, argv.start(), @@ -594,7 +594,7 @@ BUILTIN(ArrayPop) { if (accessor->HasElement(array, array, new_length, elms_obj)) { maybe_result = accessor->Get(array, array, new_length, elms_obj); } else { - maybe_result = array->GetPrototype()->GetElement(len - 1); + maybe_result = array->GetPrototype()->GetElement(isolate, len - 1); } if (maybe_result->IsFailure()) return maybe_result; MaybeObject* maybe_failure = @@ -1253,8 +1253,8 @@ MUST_USE_RESULT static MaybeObject* HandleApiCallHelper( if (!raw_call_data->IsUndefined()) { CallHandlerInfo* call_data = CallHandlerInfo::cast(raw_call_data); Object* callback_obj = call_data->callback(); - v8::InvocationCallback callback = - v8::ToCData<v8::InvocationCallback>(callback_obj); + v8::FunctionCallback callback = + v8::ToCData<v8::FunctionCallback>(callback_obj); Object* data_obj = call_data->data(); Object* result; @@ -1322,8 +1322,8 @@ MUST_USE_RESULT static MaybeObject* HandleApiCallAsFunctionOrConstructor( ASSERT(!handler->IsUndefined()); CallHandlerInfo* call_data = CallHandlerInfo::cast(handler); Object* callback_obj = call_data->callback(); - v8::InvocationCallback callback = - v8::ToCData<v8::InvocationCallback>(callback_obj); + v8::FunctionCallback callback = + v8::ToCData<v8::FunctionCallback>(callback_obj); // Get the data for the call and perform the callback. Object* result; @@ -1461,6 +1461,16 @@ static void Generate_StoreIC_Initialize_Strict(MacroAssembler* masm) { } +static void Generate_StoreIC_PreMonomorphic(MacroAssembler* masm) { + StoreIC::GeneratePreMonomorphic(masm); +} + + +static void Generate_StoreIC_PreMonomorphic_Strict(MacroAssembler* masm) { + StoreIC::GeneratePreMonomorphic(masm); +} + + static void Generate_StoreIC_Miss(MacroAssembler* masm) { StoreIC::GenerateMiss(masm); } @@ -1546,6 +1556,16 @@ static void Generate_KeyedStoreIC_Initialize_Strict(MacroAssembler* masm) { } +static void Generate_KeyedStoreIC_PreMonomorphic(MacroAssembler* masm) { + KeyedStoreIC::GeneratePreMonomorphic(masm); +} + + +static void Generate_KeyedStoreIC_PreMonomorphic_Strict(MacroAssembler* masm) { + KeyedStoreIC::GeneratePreMonomorphic(masm); +} + + static void Generate_KeyedStoreIC_NonStrictArguments(MacroAssembler* masm) { KeyedStoreIC::GenerateNonStrictArguments(masm); } @@ -1717,9 +1737,8 @@ void Builtins::InitBuiltinFunctionTable() { } -void Builtins::SetUp(bool create_heap_objects) { +void Builtins::SetUp(Isolate* isolate, bool create_heap_objects) { ASSERT(!initialized_); - Isolate* isolate = Isolate::Current(); Heap* heap = isolate->heap(); // Create a scope for the handles in the builtins. @@ -1813,6 +1832,16 @@ const char* Builtins::Lookup(byte* pc) { } +void Builtins::Generate_InterruptCheck(MacroAssembler* masm) { + masm->TailCallRuntime(Runtime::kInterrupt, 0, 1); +} + + +void Builtins::Generate_StackCheck(MacroAssembler* masm) { + masm->TailCallRuntime(Runtime::kStackGuard, 0, 1); +} + + #define DEFINE_BUILTIN_ACCESSOR_C(name, ignore) \ Handle<Code> Builtins::name() { \ Code** code_address = \ |