diff options
Diffstat (limited to 'deps/v8/src/runtime.cc')
-rw-r--r-- | deps/v8/src/runtime.cc | 55 |
1 files changed, 16 insertions, 39 deletions
diff --git a/deps/v8/src/runtime.cc b/deps/v8/src/runtime.cc index 50621a997d..ac9a2c0c9e 100644 --- a/deps/v8/src/runtime.cc +++ b/deps/v8/src/runtime.cc @@ -957,6 +957,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_TypedArrayInitializeFromArrayLike) { Runtime::ArrayIdToTypeAndSize(arrayId, &array_type, &element_size); Handle<JSArrayBuffer> buffer = isolate->factory()->NewJSArrayBuffer(); + if (source->IsJSTypedArray() && + JSTypedArray::cast(*source)->type() == array_type) { + length_obj = Handle<Object>(JSTypedArray::cast(*source)->length(), isolate); + } size_t length = NumberToSize(isolate, *length_obj); if ((length > static_cast<unsigned>(Smi::kMaxValue)) || @@ -6541,6 +6545,11 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringToUpperCase) { } +static inline bool IsTrimWhiteSpace(unibrow::uchar c) { + return unibrow::WhiteSpace::Is(c) || c == 0x200b || c == 0xfeff; +} + + RUNTIME_FUNCTION(MaybeObject*, Runtime_StringTrim) { HandleScope scope(isolate); ASSERT(args.length() == 3); @@ -6553,19 +6562,15 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StringTrim) { int length = string->length(); int left = 0; - UnicodeCache* unicode_cache = isolate->unicode_cache(); if (trimLeft) { - while (left < length && - unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(left))) { + while (left < length && IsTrimWhiteSpace(string->Get(left))) { left++; } } int right = length; if (trimRight) { - while (right > left && - unicode_cache->IsWhiteSpaceOrLineTerminator( - string->Get(right - 1))) { + while (right > left && IsTrimWhiteSpace(string->Get(right - 1))) { right--; } } @@ -7829,16 +7834,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_Math_sqrt) { } -RUNTIME_FUNCTION(MaybeObject*, Runtime_Math_fround) { - SealHandleScope shs(isolate); - ASSERT(args.length() == 1); - - CONVERT_DOUBLE_ARG_CHECKED(x, 0); - float xf = static_cast<float>(x); - return isolate->heap()->AllocateHeapNumber(xf); -} - - RUNTIME_FUNCTION(MaybeObject*, Runtime_DateMakeDay) { SealHandleScope shs(isolate); ASSERT(args.length() == 2); @@ -8484,7 +8479,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ClearFunctionTypeFeedback) { Code* unoptimized = function->shared()->code(); if (unoptimized->kind() == Code::FUNCTION) { unoptimized->ClearInlineCaches(); - unoptimized->ClearTypeFeedbackInfo(isolate->heap()); + unoptimized->ClearTypeFeedbackCells(isolate->heap()); } return isolate->heap()->undefined_value(); } @@ -14275,11 +14270,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetV8Version) { RUNTIME_FUNCTION(MaybeObject*, Runtime_Abort) { SealHandleScope shs(isolate); - ASSERT(args.length() == 1); - CONVERT_SMI_ARG_CHECKED(message_id, 0); - const char* message = GetBailoutReason( - static_cast<BailoutReason>(message_id)); - OS::PrintError("abort: %s\n", message); + ASSERT(args.length() == 2); + OS::PrintError("abort: %s\n", + reinterpret_cast<char*>(args[0]) + args.smi_at(1)); isolate->PrintStack(stderr); OS::Abort(); UNREACHABLE(); @@ -14608,21 +14601,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetMicrotaskPending) { } -RUNTIME_FUNCTION(MaybeObject*, Runtime_RunMicrotasks) { - HandleScope scope(isolate); - ASSERT(args.length() == 0); - Execution::RunMicrotasks(isolate); - return isolate->heap()->undefined_value(); -} - - -RUNTIME_FUNCTION(MaybeObject*, Runtime_GetMicrotaskState) { - SealHandleScope shs(isolate); - ASSERT(args.length() == 0); - return isolate->heap()->microtask_state(); -} - - RUNTIME_FUNCTION(MaybeObject*, Runtime_GetObservationState) { SealHandleScope shs(isolate); ASSERT(args.length() == 0); @@ -14661,7 +14639,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_IsAccessAllowedForObserver) { ASSERT(args.length() == 3); CONVERT_ARG_HANDLE_CHECKED(JSFunction, observer, 0); CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 1); - ASSERT(object->map()->is_access_check_needed()); + ASSERT(object->IsAccessCheckNeeded()); Handle<Object> key = args.at<Object>(2); SaveContext save(isolate); isolate->set_context(observer->context()); @@ -14774,7 +14752,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayConstructor) { Handle<AllocationSite> site; if (!type_info.is_null() && - *type_info != isolate->heap()->null_value() && *type_info != isolate->heap()->undefined_value()) { site = Handle<AllocationSite>::cast(type_info); ASSERT(!site->SitePointsToLiteral()); |