Index: src/runtime/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime/runtime.cc |
similarity index 85% |
rename from src/runtime.cc |
rename to src/runtime/runtime.cc |
index 5209de4684be1bb697cdd989b2acf68035dfcf31..373d4b1227971f93a9e4cd34ea9b449456fe3527 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime/runtime.cc |
@@ -36,7 +36,8 @@ |
#include "src/misc-intrinsics.h" |
#include "src/parser.h" |
#include "src/prototype.h" |
-#include "src/runtime.h" |
+#include "src/runtime/runtime.h" |
+#include "src/runtime/runtime-utils.h" |
#include "src/runtime-profiler.h" |
#include "src/scopeinfo.h" |
#include "src/smart-pointers.h" |
@@ -47,30 +48,6 @@ |
#include "src/vm-state-inl.h" |
#include "third_party/fdlibm/fdlibm.h" |
-#ifdef V8_I18N_SUPPORT |
-#include "src/i18n.h" |
-#include "unicode/brkiter.h" |
-#include "unicode/calendar.h" |
-#include "unicode/coll.h" |
-#include "unicode/curramt.h" |
-#include "unicode/datefmt.h" |
-#include "unicode/dcfmtsym.h" |
-#include "unicode/decimfmt.h" |
-#include "unicode/dtfmtsym.h" |
-#include "unicode/dtptngen.h" |
-#include "unicode/locid.h" |
-#include "unicode/numfmt.h" |
-#include "unicode/numsys.h" |
-#include "unicode/rbbi.h" |
-#include "unicode/smpdtfmt.h" |
-#include "unicode/timezone.h" |
-#include "unicode/uchar.h" |
-#include "unicode/ucol.h" |
-#include "unicode/ucurr.h" |
-#include "unicode/uloc.h" |
-#include "unicode/unum.h" |
-#include "unicode/uversion.h" |
-#endif |
#ifndef _STLP_VENDOR_CSTD |
// STLPort doesn't import fpclassify and isless into the std namespace. |
@@ -81,89 +58,31 @@ using std::isless; |
namespace v8 { |
namespace internal { |
+// Header of runtime functions. |
+#define F(name, number_of_args, result_size) \ |
+ Object* Runtime_##name(int args_length, Object** args_object, \ |
+ Isolate* isolate); |
+ |
+#define P(name, number_of_args, result_size) \ |
+ ObjectPair Runtime_##name(int args_length, Object** args_object, \ |
+ Isolate* isolate); |
+ |
+#define I(name, number_of_args, result_size) \ |
+ Object* RuntimeReference_##name(int args_length, Object** args_object, \ |
+ Isolate* isolate); |
+ |
+RUNTIME_FUNCTION_LIST_RETURN_OBJECT(F) |
+RUNTIME_FUNCTION_LIST_RETURN_PAIR(P) |
+INLINE_OPTIMIZED_FUNCTION_LIST(F) |
+INLINE_FUNCTION_LIST(I) |
-#define RUNTIME_ASSERT(value) \ |
- if (!(value)) return isolate->ThrowIllegalOperation(); |
- |
-#define RUNTIME_ASSERT_HANDLIFIED(value, T) \ |
- if (!(value)) { \ |
- isolate->ThrowIllegalOperation(); \ |
- return MaybeHandle<T>(); \ |
- } |
- |
-// Cast the given object to a value of the specified type and store |
-// it in a variable with the given name. If the object is not of the |
-// expected type call IllegalOperation and return. |
-#define CONVERT_ARG_CHECKED(Type, name, index) \ |
- RUNTIME_ASSERT(args[index]->Is##Type()); \ |
- Type* name = Type::cast(args[index]); |
- |
-#define CONVERT_ARG_HANDLE_CHECKED(Type, name, index) \ |
- RUNTIME_ASSERT(args[index]->Is##Type()); \ |
- Handle<Type> name = args.at<Type>(index); |
- |
-#define CONVERT_NUMBER_ARG_HANDLE_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsNumber()); \ |
- Handle<Object> name = args.at<Object>(index); |
- |
-// Cast the given object to a boolean and store it in a variable with |
-// the given name. If the object is not a boolean call IllegalOperation |
-// and return. |
-#define CONVERT_BOOLEAN_ARG_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsBoolean()); \ |
- bool name = args[index]->IsTrue(); |
- |
-// Cast the given argument to a Smi and store its value in an int variable |
-// with the given name. If the argument is not a Smi call IllegalOperation |
-// and return. |
-#define CONVERT_SMI_ARG_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsSmi()); \ |
- int name = args.smi_at(index); |
- |
-// Cast the given argument to a double and store it in a variable with |
-// the given name. If the argument is not a number (as opposed to |
-// the number not-a-number) call IllegalOperation and return. |
-#define CONVERT_DOUBLE_ARG_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsNumber()); \ |
- double name = args.number_at(index); |
- |
-// Call the specified converter on the object *comand store the result in |
-// a variable of the specified type with the given name. If the |
-// object is not a Number call IllegalOperation and return. |
-#define CONVERT_NUMBER_CHECKED(type, name, Type, obj) \ |
- RUNTIME_ASSERT(obj->IsNumber()); \ |
- type name = NumberTo##Type(obj); |
- |
- |
-// Cast the given argument to PropertyDetails and store its value in a |
-// variable with the given name. If the argument is not a Smi call |
-// IllegalOperation and return. |
-#define CONVERT_PROPERTY_DETAILS_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsSmi()); \ |
- PropertyDetails name = PropertyDetails(Smi::cast(args[index])); |
- |
- |
-// Assert that the given argument has a valid value for a StrictMode |
-// and store it in a StrictMode variable with the given name. |
-#define CONVERT_STRICT_MODE_ARG_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsSmi()); \ |
- RUNTIME_ASSERT(args.smi_at(index) == STRICT || \ |
- args.smi_at(index) == SLOPPY); \ |
- StrictMode name = static_cast<StrictMode>(args.smi_at(index)); |
- |
- |
-// Assert that the given argument is a number within the Int32 range |
-// and convert it to int32_t. If the argument is not an Int32 call |
-// IllegalOperation and return. |
-#define CONVERT_INT32_ARG_CHECKED(name, index) \ |
- RUNTIME_ASSERT(args[index]->IsNumber()); \ |
- int32_t name = 0; \ |
- RUNTIME_ASSERT(args[index]->ToInt32(&name)); |
+#undef I |
+#undef F |
+#undef P |
static Handle<Map> ComputeObjectLiteralMap( |
- Handle<Context> context, |
- Handle<FixedArray> constant_properties, |
+ Handle<Context> context, Handle<FixedArray> constant_properties, |
bool* is_result_from_cache) { |
Isolate* isolate = context->GetIsolate(); |
int properties_length = constant_properties->length(); |
@@ -213,16 +132,13 @@ static Handle<Map> ComputeObjectLiteralMap( |
MUST_USE_RESULT static MaybeHandle<Object> CreateLiteralBoilerplate( |
- Isolate* isolate, |
- Handle<FixedArray> literals, |
+ Isolate* isolate, Handle<FixedArray> literals, |
Handle<FixedArray> constant_properties); |
MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
- Isolate* isolate, |
- Handle<FixedArray> literals, |
- Handle<FixedArray> constant_properties, |
- bool should_have_fast_elements, |
+ Isolate* isolate, Handle<FixedArray> literals, |
+ Handle<FixedArray> constant_properties, bool should_have_fast_elements, |
bool has_function_literal) { |
// Get the native context from the literals array. This is the |
// context in which the function was created and we use the object |
@@ -239,10 +155,9 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
// not the same (which is the common case). |
bool is_result_from_cache = false; |
Handle<Map> map = has_function_literal |
- ? Handle<Map>(context->object_function()->initial_map()) |
- : ComputeObjectLiteralMap(context, |
- constant_properties, |
- &is_result_from_cache); |
+ ? Handle<Map>(context->object_function()->initial_map()) |
+ : ComputeObjectLiteralMap(context, constant_properties, |
+ &is_result_from_cache); |
PretenureFlag pretenure_flag = |
isolate->heap()->InNewSpace(*literals) ? NOT_TENURED : TENURED; |
@@ -260,20 +175,19 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
bool should_normalize = should_transform || has_function_literal; |
if (should_normalize) { |
// TODO(verwaest): We might not want to ever normalize here. |
- JSObject::NormalizeProperties( |
- boilerplate, KEEP_INOBJECT_PROPERTIES, length / 2); |
+ JSObject::NormalizeProperties(boilerplate, KEEP_INOBJECT_PROPERTIES, |
+ length / 2); |
} |
// TODO(verwaest): Support tracking representations in the boilerplate. |
- for (int index = 0; index < length; index +=2) { |
- Handle<Object> key(constant_properties->get(index+0), isolate); |
- Handle<Object> value(constant_properties->get(index+1), isolate); |
+ for (int index = 0; index < length; index += 2) { |
+ Handle<Object> key(constant_properties->get(index + 0), isolate); |
+ Handle<Object> value(constant_properties->get(index + 1), isolate); |
if (value->IsFixedArray()) { |
// The value contains the constant_properties of a |
// simple object or array literal. |
Handle<FixedArray> array = Handle<FixedArray>::cast(value); |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, value, |
- CreateLiteralBoilerplate(isolate, literals, array), |
+ isolate, value, CreateLiteralBoilerplate(isolate, literals, array), |
Object); |
} |
MaybeHandle<Object> maybe_result; |
@@ -318,8 +232,8 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
// computed properties have been assigned so that we can generate |
// constant function properties. |
if (should_transform && !has_function_literal) { |
- JSObject::MigrateSlowToFast( |
- boilerplate, boilerplate->map()->unused_property_fields()); |
+ JSObject::MigrateSlowToFast(boilerplate, |
+ boilerplate->map()->unused_property_fields()); |
} |
return boilerplate; |
@@ -327,9 +241,7 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
MUST_USE_RESULT static MaybeHandle<Object> TransitionElements( |
- Handle<Object> object, |
- ElementsKind to_kind, |
- Isolate* isolate) { |
+ Handle<Object> object, ElementsKind to_kind, Isolate* isolate) { |
HandleScope scope(isolate); |
if (!object->IsJSObject()) { |
isolate->ThrowIllegalOperation(); |
@@ -347,8 +259,7 @@ MUST_USE_RESULT static MaybeHandle<Object> TransitionElements( |
MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate( |
- Isolate* isolate, |
- Handle<FixedArray> literals, |
+ Isolate* isolate, Handle<FixedArray> literals, |
Handle<FixedArray> elements) { |
// Create the JSArray. |
Handle<JSFunction> constructor( |
@@ -365,7 +276,8 @@ MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate( |
Handle<FixedArrayBase> constant_elements_values( |
FixedArrayBase::cast(elements->get(1))); |
- { DisallowHeapAllocation no_gc; |
+ { |
+ DisallowHeapAllocation no_gc; |
DCHECK(IsFastElementsKind(constant_elements_kind)); |
Context* native_context = isolate->context()->native_context(); |
Object* maps_array = native_context->js_array_maps(); |
@@ -380,9 +292,8 @@ MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate( |
Handle<FixedDoubleArray>::cast(constant_elements_values)); |
} else { |
DCHECK(IsFastSmiOrObjectElementsKind(constant_elements_kind)); |
- const bool is_cow = |
- (constant_elements_values->map() == |
- isolate->heap()->fixed_cow_array_map()); |
+ const bool is_cow = (constant_elements_values->map() == |
+ isolate->heap()->fixed_cow_array_map()); |
if (is_cow) { |
copied_elements_values = constant_elements_values; |
#if DEBUG |
@@ -405,8 +316,7 @@ MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate( |
Handle<FixedArray> fa(FixedArray::cast(fixed_array_values->get(i))); |
Handle<Object> result; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, result, |
- CreateLiteralBoilerplate(isolate, literals, fa), |
+ isolate, result, CreateLiteralBoilerplate(isolate, literals, fa), |
Object); |
fixed_array_values_copy->set(i, *result); |
} |
@@ -422,27 +332,19 @@ MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate( |
MUST_USE_RESULT static MaybeHandle<Object> CreateLiteralBoilerplate( |
- Isolate* isolate, |
- Handle<FixedArray> literals, |
- Handle<FixedArray> array) { |
+ Isolate* isolate, Handle<FixedArray> literals, Handle<FixedArray> array) { |
Handle<FixedArray> elements = CompileTimeValue::GetElements(array); |
const bool kHasNoFunctionLiteral = false; |
switch (CompileTimeValue::GetLiteralType(array)) { |
case CompileTimeValue::OBJECT_LITERAL_FAST_ELEMENTS: |
- return CreateObjectLiteralBoilerplate(isolate, |
- literals, |
- elements, |
- true, |
+ return CreateObjectLiteralBoilerplate(isolate, literals, elements, true, |
kHasNoFunctionLiteral); |
case CompileTimeValue::OBJECT_LITERAL_SLOW_ELEMENTS: |
- return CreateObjectLiteralBoilerplate(isolate, |
- literals, |
- elements, |
- false, |
+ return CreateObjectLiteralBoilerplate(isolate, literals, elements, false, |
kHasNoFunctionLiteral); |
case CompileTimeValue::ARRAY_LITERAL: |
- return Runtime::CreateArrayLiteralBoilerplate( |
- isolate, literals, elements); |
+ return Runtime::CreateArrayLiteralBoilerplate(isolate, literals, |
+ elements); |
default: |
UNREACHABLE(); |
return MaybeHandle<Object>(); |
@@ -470,33 +372,29 @@ RUNTIME_FUNCTION(Runtime_CreateObjectLiteral) { |
Handle<Object> raw_boilerplate; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, raw_boilerplate, |
- CreateObjectLiteralBoilerplate( |
- isolate, |
- literals, |
- constant_properties, |
- should_have_fast_elements, |
- has_function_literal)); |
+ CreateObjectLiteralBoilerplate(isolate, literals, constant_properties, |
+ should_have_fast_elements, |
+ has_function_literal)); |
boilerplate = Handle<JSObject>::cast(raw_boilerplate); |
AllocationSiteCreationContext creation_context(isolate); |
site = creation_context.EnterNewScope(); |
RETURN_FAILURE_ON_EXCEPTION( |
- isolate, |
- JSObject::DeepWalk(boilerplate, &creation_context)); |
+ isolate, JSObject::DeepWalk(boilerplate, &creation_context)); |
creation_context.ExitScope(site, boilerplate); |
// Update the functions literal and return the boilerplate. |
literals->set(literals_index, *site); |
} else { |
site = Handle<AllocationSite>::cast(literal_site); |
- boilerplate = Handle<JSObject>(JSObject::cast(site->transition_info()), |
- isolate); |
+ boilerplate = |
+ Handle<JSObject>(JSObject::cast(site->transition_info()), isolate); |
} |
AllocationSiteUsageContext usage_context(isolate, site, true); |
usage_context.EnterNewScope(); |
- MaybeHandle<Object> maybe_copy = JSObject::DeepCopy( |
- boilerplate, &usage_context); |
+ MaybeHandle<Object> maybe_copy = |
+ JSObject::DeepCopy(boilerplate, &usage_context); |
usage_context.ExitScope(site, boilerplate); |
Handle<Object> copy; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, copy, maybe_copy); |
@@ -505,9 +403,7 @@ RUNTIME_FUNCTION(Runtime_CreateObjectLiteral) { |
MUST_USE_RESULT static MaybeHandle<AllocationSite> GetLiteralAllocationSite( |
- Isolate* isolate, |
- Handle<FixedArray> literals, |
- int literals_index, |
+ Isolate* isolate, Handle<FixedArray> literals, int literals_index, |
Handle<FixedArray> elements) { |
// Check if boilerplate exists. If not, create it first. |
Handle<Object> literal_site(literals->get(literals_index), isolate); |
@@ -538,12 +434,12 @@ MUST_USE_RESULT static MaybeHandle<AllocationSite> GetLiteralAllocationSite( |
static MaybeHandle<JSObject> CreateArrayLiteralImpl(Isolate* isolate, |
- Handle<FixedArray> literals, |
- int literals_index, |
- Handle<FixedArray> elements, |
- int flags) { |
- RUNTIME_ASSERT_HANDLIFIED(literals_index >= 0 && |
- literals_index < literals->length(), JSObject); |
+ Handle<FixedArray> literals, |
+ int literals_index, |
+ Handle<FixedArray> elements, |
+ int flags) { |
+ RUNTIME_ASSERT_HANDLIFIED( |
+ literals_index >= 0 && literals_index < literals->length(), JSObject); |
Handle<AllocationSite> site; |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, site, |
@@ -557,8 +453,8 @@ static MaybeHandle<JSObject> CreateArrayLiteralImpl(Isolate* isolate, |
JSObject::DeepCopyHints hints = (flags & ArrayLiteral::kShallowElements) == 0 |
? JSObject::kNoHints |
: JSObject::kObjectIsShallow; |
- MaybeHandle<JSObject> copy = JSObject::DeepCopy(boilerplate, &usage_context, |
- hints); |
+ MaybeHandle<JSObject> copy = |
+ JSObject::DeepCopy(boilerplate, &usage_context, hints); |
usage_context.ExitScope(site, boilerplate); |
return copy; |
} |
@@ -573,9 +469,9 @@ RUNTIME_FUNCTION(Runtime_CreateArrayLiteral) { |
CONVERT_SMI_ARG_CHECKED(flags, 3); |
Handle<JSObject> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
- CreateArrayLiteralImpl(isolate, literals, literals_index, elements, |
- flags)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
+ isolate, result, CreateArrayLiteralImpl(isolate, literals, literals_index, |
+ elements, flags)); |
return *result; |
} |
@@ -588,9 +484,10 @@ RUNTIME_FUNCTION(Runtime_CreateArrayLiteralStubBailout) { |
CONVERT_ARG_HANDLE_CHECKED(FixedArray, elements, 2); |
Handle<JSObject> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
- CreateArrayLiteralImpl(isolate, literals, literals_index, elements, |
- ArrayLiteral::kShallowElements)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
+ isolate, result, |
+ CreateArrayLiteralImpl(isolate, literals, literals_index, elements, |
+ ArrayLiteral::kShallowElements)); |
return *result; |
} |
@@ -702,8 +599,8 @@ RUNTIME_FUNCTION(Runtime_CreateJSFunctionProxy) { |
CONVERT_ARG_HANDLE_CHECKED(JSFunction, construct_trap, 2); |
CONVERT_ARG_HANDLE_CHECKED(Object, prototype, 3); |
if (!prototype->IsJSReceiver()) prototype = isolate->factory()->null_value(); |
- return *isolate->factory()->NewJSFunctionProxy( |
- handler, call_trap, construct_trap, prototype); |
+ return *isolate->factory()->NewJSFunctionProxy(handler, call_trap, |
+ construct_trap, prototype); |
} |
@@ -764,26 +661,24 @@ void Runtime::FreeArrayBuffer(Isolate* isolate, |
} |
if (phantom_array_buffer->is_external()) return; |
- size_t allocated_length = NumberToSize( |
- isolate, phantom_array_buffer->byte_length()); |
+ size_t allocated_length = |
+ NumberToSize(isolate, phantom_array_buffer->byte_length()); |
reinterpret_cast<v8::Isolate*>(isolate) |
->AdjustAmountOfExternalAllocatedMemory( |
-static_cast<int64_t>(allocated_length)); |
CHECK(V8::ArrayBufferAllocator() != NULL); |
- V8::ArrayBufferAllocator()->Free( |
- phantom_array_buffer->backing_store(), |
- allocated_length); |
+ V8::ArrayBufferAllocator()->Free(phantom_array_buffer->backing_store(), |
+ allocated_length); |
} |
void Runtime::SetupArrayBuffer(Isolate* isolate, |
Handle<JSArrayBuffer> array_buffer, |
- bool is_external, |
- void* data, |
+ bool is_external, void* data, |
size_t allocated_length) { |
DCHECK(array_buffer->GetInternalFieldCount() == |
- v8::ArrayBuffer::kInternalFieldCount); |
+ v8::ArrayBuffer::kInternalFieldCount); |
for (int i = 0; i < v8::ArrayBuffer::kInternalFieldCount; i++) { |
array_buffer->SetInternalField(i, Smi::FromInt(0)); |
} |
@@ -802,11 +697,10 @@ void Runtime::SetupArrayBuffer(Isolate* isolate, |
} |
-bool Runtime::SetupArrayBufferAllocatingData( |
- Isolate* isolate, |
- Handle<JSArrayBuffer> array_buffer, |
- size_t allocated_length, |
- bool initialize) { |
+bool Runtime::SetupArrayBufferAllocatingData(Isolate* isolate, |
+ Handle<JSArrayBuffer> array_buffer, |
+ size_t allocated_length, |
+ bool initialize) { |
void* data; |
CHECK(V8::ArrayBufferAllocator() != NULL); |
if (allocated_length != 0) { |
@@ -863,8 +757,8 @@ RUNTIME_FUNCTION(Runtime_ArrayBufferInitialize) { |
isolate, NewRangeError("invalid_array_buffer_length", |
HandleVector<Object>(NULL, 0))); |
} |
- if (!Runtime::SetupArrayBufferAllocatingData(isolate, |
- holder, allocated_length)) { |
+ if (!Runtime::SetupArrayBufferAllocatingData(isolate, holder, |
+ allocated_length)) { |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewRangeError("invalid_array_buffer_length", |
HandleVector<Object>(NULL, 0))); |
@@ -930,20 +824,18 @@ RUNTIME_FUNCTION(Runtime_ArrayBufferNeuter) { |
} |
-void Runtime::ArrayIdToTypeAndSize( |
- int arrayId, |
- ExternalArrayType* array_type, |
- ElementsKind* external_elements_kind, |
- ElementsKind* fixed_elements_kind, |
- size_t* element_size) { |
+void Runtime::ArrayIdToTypeAndSize(int arrayId, ExternalArrayType* array_type, |
+ ElementsKind* external_elements_kind, |
+ ElementsKind* fixed_elements_kind, |
+ size_t* element_size) { |
switch (arrayId) { |
-#define ARRAY_ID_CASE(Type, type, TYPE, ctype, size) \ |
- case ARRAY_ID_##TYPE: \ |
- *array_type = kExternal##Type##Array; \ |
- *external_elements_kind = EXTERNAL_##TYPE##_ELEMENTS; \ |
- *fixed_elements_kind = TYPE##_ELEMENTS; \ |
- *element_size = size; \ |
- break; |
+#define ARRAY_ID_CASE(Type, type, TYPE, ctype, size) \ |
+ case ARRAY_ID_##TYPE: \ |
+ *array_type = kExternal##Type##Array; \ |
+ *external_elements_kind = EXTERNAL_##TYPE##_ELEMENTS; \ |
+ *fixed_elements_kind = TYPE##_ELEMENTS; \ |
+ *element_size = size; \ |
+ break; |
TYPED_ARRAYS(ARRAY_ID_CASE) |
#undef ARRAY_ID_CASE |
@@ -967,15 +859,12 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitialize) { |
arrayId <= Runtime::ARRAY_ID_LAST); |
ExternalArrayType array_type = kExternalInt8Array; // Bogus initialization. |
- size_t element_size = 1; // Bogus initialization. |
+ size_t element_size = 1; // Bogus initialization. |
ElementsKind external_elements_kind = |
- EXTERNAL_INT8_ELEMENTS; // Bogus initialization. |
+ EXTERNAL_INT8_ELEMENTS; // Bogus initialization. |
ElementsKind fixed_elements_kind = INT8_ELEMENTS; // Bogus initialization. |
- Runtime::ArrayIdToTypeAndSize(arrayId, |
- &array_type, |
- &external_elements_kind, |
- &fixed_elements_kind, |
- &element_size); |
+ Runtime::ArrayIdToTypeAndSize(arrayId, &array_type, &external_elements_kind, |
+ &fixed_elements_kind, &element_size); |
RUNTIME_ASSERT(holder->map()->elements_kind() == fixed_elements_kind); |
size_t byte_offset = 0; |
@@ -1005,7 +894,7 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitialize) { |
// All checks are done, now we can modify objects. |
DCHECK(holder->GetInternalFieldCount() == |
- v8::ArrayBufferView::kInternalFieldCount); |
+ v8::ArrayBufferView::kInternalFieldCount); |
for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { |
holder->SetInternalField(i, Smi::FromInt(0)); |
} |
@@ -1020,10 +909,9 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitialize) { |
holder->set_weak_next(buffer->weak_first_view()); |
buffer->set_weak_first_view(*holder); |
- Handle<ExternalArray> elements = |
- isolate->factory()->NewExternalArray( |
- static_cast<int>(length), array_type, |
- static_cast<uint8_t*>(buffer->backing_store()) + byte_offset); |
+ Handle<ExternalArray> elements = isolate->factory()->NewExternalArray( |
+ static_cast<int>(length), array_type, |
+ static_cast<uint8_t*>(buffer->backing_store()) + byte_offset); |
Handle<Map> map = |
JSObject::GetElementsTransitionMap(holder, external_elements_kind); |
JSObject::SetMapAndElements(holder, map, elements); |
@@ -1032,8 +920,8 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitialize) { |
holder->set_buffer(Smi::FromInt(0)); |
holder->set_weak_next(isolate->heap()->undefined_value()); |
Handle<FixedTypedArrayBase> elements = |
- isolate->factory()->NewFixedTypedArray( |
- static_cast<int>(length), array_type); |
+ isolate->factory()->NewFixedTypedArray(static_cast<int>(length), |
+ array_type); |
holder->set_elements(*elements); |
} |
return isolate->heap()->undefined_value(); |
@@ -1057,15 +945,12 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
arrayId <= Runtime::ARRAY_ID_LAST); |
ExternalArrayType array_type = kExternalInt8Array; // Bogus initialization. |
- size_t element_size = 1; // Bogus initialization. |
+ size_t element_size = 1; // Bogus initialization. |
ElementsKind external_elements_kind = |
- EXTERNAL_INT8_ELEMENTS; // Bogus intialization. |
+ EXTERNAL_INT8_ELEMENTS; // Bogus intialization. |
ElementsKind fixed_elements_kind = INT8_ELEMENTS; // Bogus initialization. |
- Runtime::ArrayIdToTypeAndSize(arrayId, |
- &array_type, |
- &external_elements_kind, |
- &fixed_elements_kind, |
- &element_size); |
+ Runtime::ArrayIdToTypeAndSize(arrayId, &array_type, &external_elements_kind, |
+ &fixed_elements_kind, &element_size); |
RUNTIME_ASSERT(holder->map()->elements_kind() == fixed_elements_kind); |
@@ -1086,7 +971,7 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
size_t byte_length = length * element_size; |
DCHECK(holder->GetInternalFieldCount() == |
- v8::ArrayBufferView::kInternalFieldCount); |
+ v8::ArrayBufferView::kInternalFieldCount); |
for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { |
holder->SetInternalField(i, Smi::FromInt(0)); |
} |
@@ -1107,8 +992,8 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
// |
// TODO(dslomov): revise this once we support subclassing. |
- if (!Runtime::SetupArrayBufferAllocatingData( |
- isolate, buffer, byte_length, false)) { |
+ if (!Runtime::SetupArrayBufferAllocatingData(isolate, buffer, byte_length, |
+ false)) { |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewRangeError("invalid_array_buffer_length", |
HandleVector<Object>(NULL, 0))); |
@@ -1123,12 +1008,11 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
holder->set_weak_next(buffer->weak_first_view()); |
buffer->set_weak_first_view(*holder); |
- Handle<ExternalArray> elements = |
- isolate->factory()->NewExternalArray( |
- static_cast<int>(length), array_type, |
- static_cast<uint8_t*>(buffer->backing_store())); |
- Handle<Map> map = JSObject::GetElementsTransitionMap( |
- holder, external_elements_kind); |
+ Handle<ExternalArray> elements = isolate->factory()->NewExternalArray( |
+ static_cast<int>(length), array_type, |
+ static_cast<uint8_t*>(buffer->backing_store())); |
+ Handle<Map> map = |
+ JSObject::GetElementsTransitionMap(holder, external_elements_kind); |
JSObject::SetMapAndElements(holder, map, elements); |
if (source->IsJSTypedArray()) { |
@@ -1136,14 +1020,11 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
if (typed_array->type() == holder->type()) { |
uint8_t* backing_store = |
- static_cast<uint8_t*>( |
- typed_array->GetBuffer()->backing_store()); |
+ static_cast<uint8_t*>(typed_array->GetBuffer()->backing_store()); |
size_t source_byte_offset = |
NumberToSize(isolate, typed_array->byte_offset()); |
- memcpy( |
- buffer->backing_store(), |
- backing_store + source_byte_offset, |
- byte_length); |
+ memcpy(buffer->backing_store(), backing_store + source_byte_offset, |
+ byte_length); |
return isolate->heap()->true_value(); |
} |
} |
@@ -1152,12 +1033,12 @@ RUNTIME_FUNCTION(Runtime_TypedArrayInitializeFromArrayLike) { |
} |
-#define BUFFER_VIEW_GETTER(Type, getter, accessor) \ |
- RUNTIME_FUNCTION(Runtime_##Type##Get##getter) { \ |
- HandleScope scope(isolate); \ |
- DCHECK(args.length() == 1); \ |
- CONVERT_ARG_HANDLE_CHECKED(JS##Type, holder, 0); \ |
- return holder->accessor(); \ |
+#define BUFFER_VIEW_GETTER(Type, getter, accessor) \ |
+ RUNTIME_FUNCTION(Runtime_##Type##Get##getter) { \ |
+ HandleScope scope(isolate); \ |
+ DCHECK(args.length() == 1); \ |
+ CONVERT_ARG_HANDLE_CHECKED(JS##Type, holder, 0); \ |
+ return holder->accessor(); \ |
} |
BUFFER_VIEW_GETTER(ArrayBufferView, ByteLength, byte_length) |
@@ -1224,28 +1105,27 @@ RUNTIME_FUNCTION(Runtime_TypedArraySetFastCases) { |
size_t target_offset = NumberToSize(isolate, target->byte_offset()); |
size_t source_offset = NumberToSize(isolate, source->byte_offset()); |
uint8_t* target_base = |
- static_cast<uint8_t*>( |
- target->GetBuffer()->backing_store()) + target_offset; |
+ static_cast<uint8_t*>(target->GetBuffer()->backing_store()) + |
+ target_offset; |
uint8_t* source_base = |
- static_cast<uint8_t*>( |
- source->GetBuffer()->backing_store()) + source_offset; |
+ static_cast<uint8_t*>(source->GetBuffer()->backing_store()) + |
+ source_offset; |
// Typed arrays of the same type: use memmove. |
if (target->type() == source->type()) { |
- memmove(target_base + offset * target->element_size(), |
- source_base, source_byte_length); |
+ memmove(target_base + offset * target->element_size(), source_base, |
+ source_byte_length); |
return Smi::FromInt(TYPED_ARRAY_SET_TYPED_ARRAY_SAME_TYPE); |
} |
// Typed arrays of different types over the same backing store |
if ((source_base <= target_base && |
- source_base + source_byte_length > target_base) || |
+ source_base + source_byte_length > target_base) || |
(target_base <= source_base && |
- target_base + target_byte_length > source_base)) { |
+ target_base + target_byte_length > source_base)) { |
// We do not support overlapping ArrayBuffers |
- DCHECK( |
- target->GetBuffer()->backing_store() == |
- source->GetBuffer()->backing_store()); |
+ DCHECK(target->GetBuffer()->backing_store() == |
+ source->GetBuffer()->backing_store()); |
return Smi::FromInt(TYPED_ARRAY_SET_TYPED_ARRAY_OVERLAPPING); |
} else { // Non-overlapping typed arrays |
return Smi::FromInt(TYPED_ARRAY_SET_TYPED_ARRAY_NONOVERLAPPING); |
@@ -1255,8 +1135,8 @@ RUNTIME_FUNCTION(Runtime_TypedArraySetFastCases) { |
RUNTIME_FUNCTION(Runtime_TypedArrayMaxSizeInHeap) { |
DCHECK(args.length() == 0); |
- DCHECK_OBJECT_SIZE( |
- FLAG_typed_array_max_size_in_heap + FixedTypedArrayBase::kDataOffset); |
+ DCHECK_OBJECT_SIZE(FLAG_typed_array_max_size_in_heap + |
+ FixedTypedArrayBase::kDataOffset); |
return Smi::FromInt(FLAG_typed_array_max_size_in_heap); |
} |
@@ -1270,7 +1150,7 @@ RUNTIME_FUNCTION(Runtime_DataViewInitialize) { |
CONVERT_NUMBER_ARG_HANDLE_CHECKED(byte_length, 3); |
DCHECK(holder->GetInternalFieldCount() == |
- v8::ArrayBufferView::kInternalFieldCount); |
+ v8::ArrayBufferView::kInternalFieldCount); |
for (int i = 0; i < v8::ArrayBufferView::kInternalFieldCount; i++) { |
holder->SetInternalField(i, Smi::FromInt(0)); |
} |
@@ -1309,7 +1189,7 @@ inline static bool NeedToFlipBytes(bool is_little_endian) { |
} |
-template<int n> |
+template <int n> |
inline void CopyBytes(uint8_t* target, uint8_t* source) { |
for (int i = 0; i < n; i++) { |
*(target++) = *(source++); |
@@ -1317,22 +1197,20 @@ inline void CopyBytes(uint8_t* target, uint8_t* source) { |
} |
-template<int n> |
+template <int n> |
inline void FlipBytes(uint8_t* target, uint8_t* source) { |
- source = source + (n-1); |
+ source = source + (n - 1); |
for (int i = 0; i < n; i++) { |
*(target++) = *(source--); |
} |
} |
-template<typename T> |
-inline static bool DataViewGetValue( |
- Isolate* isolate, |
- Handle<JSDataView> data_view, |
- Handle<Object> byte_offset_obj, |
- bool is_little_endian, |
- T* result) { |
+template <typename T> |
+inline static bool DataViewGetValue(Isolate* isolate, |
+ Handle<JSDataView> data_view, |
+ Handle<Object> byte_offset_obj, |
+ bool is_little_endian, T* result) { |
size_t byte_offset = 0; |
if (!TryNumberToSize(isolate, *byte_offset_obj, &byte_offset)) { |
return false; |
@@ -1344,7 +1222,7 @@ inline static bool DataViewGetValue( |
size_t data_view_byte_length = |
NumberToSize(isolate, data_view->byte_length()); |
if (byte_offset + sizeof(T) > data_view_byte_length || |
- byte_offset + sizeof(T) < byte_offset) { // overflow |
+ byte_offset + sizeof(T) < byte_offset) { // overflow |
return false; |
} |
@@ -1355,11 +1233,10 @@ inline static bool DataViewGetValue( |
Value value; |
size_t buffer_offset = data_view_byte_offset + byte_offset; |
- DCHECK( |
- NumberToSize(isolate, buffer->byte_length()) |
- >= buffer_offset + sizeof(T)); |
+ DCHECK(NumberToSize(isolate, buffer->byte_length()) >= |
+ buffer_offset + sizeof(T)); |
uint8_t* source = |
- static_cast<uint8_t*>(buffer->backing_store()) + buffer_offset; |
+ static_cast<uint8_t*>(buffer->backing_store()) + buffer_offset; |
if (NeedToFlipBytes(is_little_endian)) { |
FlipBytes<sizeof(T)>(value.bytes, source); |
} else { |
@@ -1370,13 +1247,10 @@ inline static bool DataViewGetValue( |
} |
-template<typename T> |
-static bool DataViewSetValue( |
- Isolate* isolate, |
- Handle<JSDataView> data_view, |
- Handle<Object> byte_offset_obj, |
- bool is_little_endian, |
- T data) { |
+template <typename T> |
+static bool DataViewSetValue(Isolate* isolate, Handle<JSDataView> data_view, |
+ Handle<Object> byte_offset_obj, |
+ bool is_little_endian, T data) { |
size_t byte_offset = 0; |
if (!TryNumberToSize(isolate, *byte_offset_obj, &byte_offset)) { |
return false; |
@@ -1388,7 +1262,7 @@ static bool DataViewSetValue( |
size_t data_view_byte_length = |
NumberToSize(isolate, data_view->byte_length()); |
if (byte_offset + sizeof(T) > data_view_byte_length || |
- byte_offset + sizeof(T) < byte_offset) { // overflow |
+ byte_offset + sizeof(T) < byte_offset) { // overflow |
return false; |
} |
@@ -1400,11 +1274,10 @@ static bool DataViewSetValue( |
Value value; |
value.data = data; |
size_t buffer_offset = data_view_byte_offset + byte_offset; |
- DCHECK( |
- NumberToSize(isolate, buffer->byte_length()) |
- >= buffer_offset + sizeof(T)); |
+ DCHECK(NumberToSize(isolate, buffer->byte_length()) >= |
+ buffer_offset + sizeof(T)); |
uint8_t* target = |
- static_cast<uint8_t*>(buffer->backing_store()) + buffer_offset; |
+ static_cast<uint8_t*>(buffer->backing_store()) + buffer_offset; |
if (NeedToFlipBytes(is_little_endian)) { |
FlipBytes<sizeof(T)>(target, value.bytes); |
} else { |
@@ -1701,9 +1574,9 @@ RUNTIME_FUNCTION(Runtime_MapIteratorInitialize) { |
CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0); |
CONVERT_ARG_HANDLE_CHECKED(JSMap, map, 1); |
CONVERT_SMI_ARG_CHECKED(kind, 2) |
- RUNTIME_ASSERT(kind == JSMapIterator::kKindKeys |
- || kind == JSMapIterator::kKindValues |
- || kind == JSMapIterator::kKindEntries); |
+ RUNTIME_ASSERT(kind == JSMapIterator::kKindKeys || |
+ kind == JSMapIterator::kKindValues || |
+ kind == JSMapIterator::kKindEntries); |
Handle<OrderedHashMap> table(OrderedHashMap::cast(map->table())); |
holder->set_table(*table); |
holder->set_index(Smi::FromInt(0)); |
@@ -1746,8 +1619,7 @@ RUNTIME_FUNCTION(Runtime_MapIteratorNext) { |
static Handle<JSWeakCollection> WeakCollectionInitialize( |
- Isolate* isolate, |
- Handle<JSWeakCollection> weak_collection) { |
+ Isolate* isolate, Handle<JSWeakCollection> weak_collection) { |
DCHECK(weak_collection->map()->inobject_properties() == 0); |
Handle<ObjectHashTable> table = ObjectHashTable::New(isolate, 0); |
weak_collection->set_table(*table); |
@@ -1797,8 +1669,8 @@ RUNTIME_FUNCTION(Runtime_WeakCollectionDelete) { |
CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, weak_collection, 0); |
CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
RUNTIME_ASSERT(key->IsJSReceiver() || key->IsSymbol()); |
- Handle<ObjectHashTable> table(ObjectHashTable::cast( |
- weak_collection->table())); |
+ Handle<ObjectHashTable> table( |
+ ObjectHashTable::cast(weak_collection->table())); |
RUNTIME_ASSERT(table->IsKey(*key)); |
bool was_present = false; |
Handle<ObjectHashTable> new_table = |
@@ -1906,8 +1778,8 @@ RUNTIME_FUNCTION(Runtime_SetPrototype) { |
CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); |
CONVERT_ARG_HANDLE_CHECKED(Object, prototype, 1); |
if (obj->IsAccessCheckNeeded() && |
- !isolate->MayNamedAccess( |
- obj, isolate->factory()->proto_string(), v8::ACCESS_SET)) { |
+ !isolate->MayNamedAccess(obj, isolate->factory()->proto_string(), |
+ v8::ACCESS_SET)) { |
isolate->ReportFailedAccessCheck(obj, v8::ACCESS_SET); |
RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate); |
return isolate->heap()->undefined_value(); |
@@ -1916,21 +1788,18 @@ RUNTIME_FUNCTION(Runtime_SetPrototype) { |
Handle<Object> old_value = GetPrototypeSkipHiddenPrototypes(isolate, obj); |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- JSObject::SetPrototype(obj, prototype, true)); |
+ isolate, result, JSObject::SetPrototype(obj, prototype, true)); |
Handle<Object> new_value = GetPrototypeSkipHiddenPrototypes(isolate, obj); |
if (!new_value->SameValue(*old_value)) { |
- JSObject::EnqueueChangeRecord(obj, "setPrototype", |
- isolate->factory()->proto_string(), |
- old_value); |
+ JSObject::EnqueueChangeRecord( |
+ obj, "setPrototype", isolate->factory()->proto_string(), old_value); |
} |
return *result; |
} |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- JSObject::SetPrototype(obj, prototype, true)); |
+ isolate, result, JSObject::SetPrototype(obj, prototype, true)); |
return *result; |
} |
@@ -1988,8 +1857,9 @@ MUST_USE_RESULT static MaybeHandle<Object> GetOwnProperty(Isolate* isolate, |
// Get value if not an AccessorPair. |
if (maybe_accessors.is_null()) { |
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value, |
- Runtime::GetElementOrCharAt(isolate, obj, index), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION( |
+ isolate, value, Runtime::GetElementOrCharAt(isolate, obj, index), |
+ Object); |
} |
} else { |
// Get attributes. |
@@ -2007,8 +1877,8 @@ MUST_USE_RESULT static MaybeHandle<Object> GetOwnProperty(Isolate* isolate, |
// Get value if not an AccessorPair. |
if (maybe_accessors.is_null()) { |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, value, Object::GetProperty(&it), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, value, Object::GetProperty(&it), |
+ Object); |
} |
} |
DCHECK(!isolate->has_pending_exception()); |
@@ -2045,8 +1915,8 @@ RUNTIME_FUNCTION(Runtime_GetOwnProperty) { |
CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); |
CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, GetOwnProperty(isolate, obj, name)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ GetOwnProperty(isolate, obj, name)); |
return *result; |
} |
@@ -2056,8 +1926,8 @@ RUNTIME_FUNCTION(Runtime_PreventExtensions) { |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, JSObject::PreventExtensions(obj)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ JSObject::PreventExtensions(obj)); |
return *result; |
} |
@@ -2126,8 +1996,8 @@ RUNTIME_FUNCTION(Runtime_RegExpCompile) { |
CONVERT_ARG_HANDLE_CHECKED(String, pattern, 1); |
CONVERT_ARG_HANDLE_CHECKED(String, flags, 2); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, RegExpImpl::Compile(re, pattern, flags)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ RegExpImpl::Compile(re, pattern, flags)); |
return *result; |
} |
@@ -2201,7 +2071,7 @@ RUNTIME_FUNCTION(Runtime_EnableAccessChecks) { |
static Object* ThrowRedeclarationError(Isolate* isolate, Handle<String> name) { |
HandleScope scope(isolate); |
- Handle<Object> args[1] = { name }; |
+ Handle<Object> args[1] = {name}; |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewTypeError("var_redeclaration", HandleVector(args, 1))); |
} |
@@ -2557,7 +2427,7 @@ RUNTIME_FUNCTION(Runtime_RegExpConstructResult) { |
RUNTIME_ASSERT(size >= 0 && size <= FixedArray::kMaxLength); |
CONVERT_ARG_HANDLE_CHECKED(Object, index, 1); |
CONVERT_ARG_HANDLE_CHECKED(Object, input, 2); |
- Handle<FixedArray> elements = isolate->factory()->NewFixedArray(size); |
+ Handle<FixedArray> elements = isolate->factory()->NewFixedArray(size); |
Handle<Map> regexp_map(isolate->native_context()->regexp_result_map()); |
Handle<JSObject> object = |
isolate->factory()->NewJSObjectFromMap(regexp_map, NOT_TENURED, false); |
@@ -2594,21 +2464,20 @@ RUNTIME_FUNCTION(Runtime_RegExpInitializeObject) { |
Map* map = regexp->map(); |
Object* constructor = map->constructor(); |
- if (!FLAG_harmony_regexps && |
- constructor->IsJSFunction() && |
+ if (!FLAG_harmony_regexps && constructor->IsJSFunction() && |
JSFunction::cast(constructor)->initial_map() == map) { |
// If we still have the original map, set in-object properties directly. |
regexp->InObjectPropertyAtPut(JSRegExp::kSourceFieldIndex, *source); |
// Both true and false are immovable immortal objects so no need for write |
// barrier. |
- regexp->InObjectPropertyAtPut( |
- JSRegExp::kGlobalFieldIndex, *global, SKIP_WRITE_BARRIER); |
- regexp->InObjectPropertyAtPut( |
- JSRegExp::kIgnoreCaseFieldIndex, *ignoreCase, SKIP_WRITE_BARRIER); |
- regexp->InObjectPropertyAtPut( |
- JSRegExp::kMultilineFieldIndex, *multiline, SKIP_WRITE_BARRIER); |
- regexp->InObjectPropertyAtPut( |
- JSRegExp::kLastIndexFieldIndex, Smi::FromInt(0), SKIP_WRITE_BARRIER); |
+ regexp->InObjectPropertyAtPut(JSRegExp::kGlobalFieldIndex, *global, |
+ SKIP_WRITE_BARRIER); |
+ regexp->InObjectPropertyAtPut(JSRegExp::kIgnoreCaseFieldIndex, *ignoreCase, |
+ SKIP_WRITE_BARRIER); |
+ regexp->InObjectPropertyAtPut(JSRegExp::kMultilineFieldIndex, *multiline, |
+ SKIP_WRITE_BARRIER); |
+ regexp->InObjectPropertyAtPut(JSRegExp::kLastIndexFieldIndex, |
+ Smi::FromInt(0), SKIP_WRITE_BARRIER); |
return *regexp; |
} |
@@ -2623,20 +2492,20 @@ RUNTIME_FUNCTION(Runtime_RegExpInitializeObject) { |
static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE); |
Handle<Object> zero(Smi::FromInt(0), isolate); |
Factory* factory = isolate->factory(); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- regexp, factory->source_string(), source, final).Check(); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- regexp, factory->global_string(), global, final).Check(); |
+ JSObject::SetOwnPropertyIgnoreAttributes(regexp, factory->source_string(), |
+ source, final).Check(); |
+ JSObject::SetOwnPropertyIgnoreAttributes(regexp, factory->global_string(), |
+ global, final).Check(); |
JSObject::SetOwnPropertyIgnoreAttributes( |
regexp, factory->ignore_case_string(), ignoreCase, final).Check(); |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- regexp, factory->multiline_string(), multiline, final).Check(); |
+ JSObject::SetOwnPropertyIgnoreAttributes(regexp, factory->multiline_string(), |
+ multiline, final).Check(); |
if (FLAG_harmony_regexps) { |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- regexp, factory->sticky_string(), sticky, final).Check(); |
+ JSObject::SetOwnPropertyIgnoreAttributes(regexp, factory->sticky_string(), |
+ sticky, final).Check(); |
} |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- regexp, factory->last_index_string(), zero, writable).Check(); |
+ JSObject::SetOwnPropertyIgnoreAttributes(regexp, factory->last_index_string(), |
+ zero, writable).Check(); |
return *regexp; |
} |
@@ -2655,10 +2524,8 @@ RUNTIME_FUNCTION(Runtime_FinishArrayPrototypeSetup) { |
} |
-static void InstallBuiltin(Isolate* isolate, |
- Handle<JSObject> holder, |
- const char* name, |
- Builtins::Name builtin_name) { |
+static void InstallBuiltin(Isolate* isolate, Handle<JSObject> holder, |
+ const char* name, Builtins::Name builtin_name) { |
Handle<String> key = isolate->factory()->InternalizeUtf8String(name); |
Handle<Code> code(isolate->builtins()->builtin(builtin_name)); |
Handle<JSFunction> optimized = |
@@ -2694,9 +2561,8 @@ RUNTIME_FUNCTION(Runtime_IsSloppyModeFunction) { |
HandleScope scope(isolate); |
Handle<Object> delegate; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, delegate, |
- Execution::TryGetFunctionDelegate( |
- isolate, Handle<JSReceiver>(callable))); |
+ isolate, delegate, Execution::TryGetFunctionDelegate( |
+ isolate, Handle<JSReceiver>(callable))); |
callable = JSFunction::cast(*delegate); |
} |
JSFunction* function = JSFunction::cast(callable); |
@@ -2714,9 +2580,8 @@ RUNTIME_FUNCTION(Runtime_GetDefaultReceiver) { |
HandleScope scope(isolate); |
Handle<Object> delegate; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, delegate, |
- Execution::TryGetFunctionDelegate( |
- isolate, Handle<JSReceiver>(callable))); |
+ isolate, delegate, Execution::TryGetFunctionDelegate( |
+ isolate, Handle<JSReceiver>(callable))); |
callable = JSFunction::cast(*delegate); |
} |
JSFunction* function = JSFunction::cast(callable); |
@@ -2745,9 +2610,8 @@ RUNTIME_FUNCTION(Runtime_MaterializeRegExpLiteral) { |
// function was created. We do not use the RegExp function from the |
// current native context because this might be the RegExp function |
// from another context which we should not have access to. |
- Handle<JSFunction> constructor = |
- Handle<JSFunction>( |
- JSFunction::NativeContextFromLiterals(*literals)->regexp_function()); |
+ Handle<JSFunction> constructor = Handle<JSFunction>( |
+ JSFunction::NativeContextFromLiterals(*literals)->regexp_function()); |
// Compute the regular expression literal. |
Handle<Object> regexp; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
@@ -2989,8 +2853,8 @@ RUNTIME_FUNCTION(Runtime_SetCode) { |
if (isolate->logger()->is_logging_code_events() || |
isolate->cpu_profiler()->is_profiling()) { |
- isolate->logger()->LogExistingFunction( |
- source_shared, Handle<Code>(source_shared->code())); |
+ isolate->logger()->LogExistingFunction(source_shared, |
+ Handle<Code>(source_shared->code())); |
} |
return *target; |
@@ -3126,9 +2990,10 @@ RUNTIME_FUNCTION(Runtime_ThrowGeneratorStateError) { |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); |
int continuation = generator->continuation(); |
- const char* message = continuation == JSGeneratorObject::kGeneratorClosed ? |
- "generator_finished" : "generator_running"; |
- Vector< Handle<Object> > argv = HandleVector<Object>(NULL, 0); |
+ const char* message = continuation == JSGeneratorObject::kGeneratorClosed |
+ ? "generator_finished" |
+ : "generator_running"; |
+ Vector<Handle<Object> > argv = HandleVector<Object>(NULL, 0); |
THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewError(message, argv)); |
} |
@@ -3140,8 +3005,7 @@ RUNTIME_FUNCTION(Runtime_ObjectFreeze) { |
// %ObjectFreeze is a fast path and these cases are handled elsewhere. |
RUNTIME_ASSERT(!object->HasSloppyArgumentsElements() && |
- !object->map()->is_observed() && |
- !object->IsJSProxy()); |
+ !object->map()->is_observed() && !object->IsJSProxy()); |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, JSObject::Freeze(object)); |
@@ -3193,9 +3057,7 @@ class FixedArrayBuilder { |
} |
explicit FixedArrayBuilder(Handle<FixedArray> backing_store) |
- : array_(backing_store), |
- length_(0), |
- has_non_smi_elements_(false) { |
+ : array_(backing_store), length_(0), has_non_smi_elements_(false) { |
// Require a non-zero initial size. Ensures that doubling the size to |
// extend the array will work. |
DCHECK(backing_store->length() > 0); |
@@ -3237,17 +3099,11 @@ class FixedArrayBuilder { |
length_++; |
} |
- Handle<FixedArray> array() { |
- return array_; |
- } |
+ Handle<FixedArray> array() { return array_; } |
- int length() { |
- return length_; |
- } |
+ int length() { return length_; } |
- int capacity() { |
- return array_->length(); |
- } |
+ int capacity() { return array_->length(); } |
Handle<JSArray> ToJSArray(Handle<JSArray> target_array) { |
JSArray::SetContent(target_array, array_); |
@@ -3268,15 +3124,11 @@ const int kStringBuilderConcatHelperLengthBits = 11; |
const int kStringBuilderConcatHelperPositionBits = 19; |
template <typename schar> |
-static inline void StringBuilderConcatHelper(String*, |
- schar*, |
- FixedArray*, |
- int); |
+static inline void StringBuilderConcatHelper(String*, schar*, FixedArray*, int); |
typedef BitField<int, 0, kStringBuilderConcatHelperLengthBits> |
StringBuilderSubstringLength; |
-typedef BitField<int, |
- kStringBuilderConcatHelperLengthBits, |
+typedef BitField<int, kStringBuilderConcatHelperLengthBits, |
kStringBuilderConcatHelperPositionBits> |
StringBuilderSubstringPosition; |
@@ -3295,8 +3147,7 @@ class ReplacementStringBuilder { |
DCHECK(estimated_part_count > 0); |
} |
- static inline void AddSubjectSlice(FixedArrayBuilder* builder, |
- int from, |
+ static inline void AddSubjectSlice(FixedArrayBuilder* builder, int from, |
int to) { |
DCHECK(from >= 0); |
int length = to - from; |
@@ -3304,7 +3155,7 @@ class ReplacementStringBuilder { |
if (StringBuilderSubstringLength::is_valid(length) && |
StringBuilderSubstringPosition::is_valid(from)) { |
int encoded_slice = StringBuilderSubstringLength::encode(length) | |
- StringBuilderSubstringPosition::encode(from); |
+ StringBuilderSubstringPosition::encode(from); |
builder->Add(Smi::FromInt(encoded_slice)); |
} else { |
// Otherwise encode as two smis. |
@@ -3314,9 +3165,7 @@ class ReplacementStringBuilder { |
} |
- void EnsureCapacity(int elements) { |
- array_builder_.EnsureCapacity(elements); |
- } |
+ void EnsureCapacity(int elements) { array_builder_.EnsureCapacity(elements); } |
void AddSubjectSlice(int from, int to) { |
@@ -3347,14 +3196,11 @@ class ReplacementStringBuilder { |
Handle<SeqOneByteString> seq; |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, seq, |
- isolate->factory()->NewRawOneByteString(character_count_), |
- String); |
+ isolate->factory()->NewRawOneByteString(character_count_), String); |
DisallowHeapAllocation no_gc; |
uint8_t* char_buffer = seq->GetChars(); |
- StringBuilderConcatHelper(*subject_, |
- char_buffer, |
- *array_builder_.array(), |
+ StringBuilderConcatHelper(*subject_, char_buffer, *array_builder_.array(), |
array_builder_.length()); |
joined_string = Handle<String>::cast(seq); |
} else { |
@@ -3362,14 +3208,11 @@ class ReplacementStringBuilder { |
Handle<SeqTwoByteString> seq; |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, seq, |
- isolate->factory()->NewRawTwoByteString(character_count_), |
- String); |
+ isolate->factory()->NewRawTwoByteString(character_count_), String); |
DisallowHeapAllocation no_gc; |
uc16* char_buffer = seq->GetChars(); |
- StringBuilderConcatHelper(*subject_, |
- char_buffer, |
- *array_builder_.array(), |
+ StringBuilderConcatHelper(*subject_, char_buffer, *array_builder_.array(), |
array_builder_.length()); |
joined_string = Handle<String>::cast(seq); |
} |
@@ -3407,20 +3250,15 @@ class CompiledReplacement { |
: parts_(1, zone), replacement_substrings_(0, zone), zone_(zone) {} |
// Return whether the replacement is simple. |
- bool Compile(Handle<String> replacement, |
- int capture_count, |
+ bool Compile(Handle<String> replacement, int capture_count, |
int subject_length); |
// Use Apply only if Compile returned false. |
- void Apply(ReplacementStringBuilder* builder, |
- int match_from, |
- int match_to, |
+ void Apply(ReplacementStringBuilder* builder, int match_from, int match_to, |
int32_t* match); |
// Number of distinct parts of the replacement pattern. |
- int parts() { |
- return parts_.length(); |
- } |
+ int parts() { return parts_.length(); } |
Zone* zone() const { return zone_; } |
@@ -3431,7 +3269,6 @@ class CompiledReplacement { |
SUBJECT_CAPTURE, |
REPLACEMENT_SUBSTRING, |
REPLACEMENT_STRING, |
- |
NUMBER_OF_PART_TYPES |
}; |
@@ -3459,8 +3296,7 @@ class CompiledReplacement { |
// If tag <= 0 then it is the negation of a start index of a substring of |
// the replacement pattern, otherwise it's a value from PartType. |
- ReplacementPart(int tag, int data) |
- : tag(tag), data(data) { |
+ ReplacementPart(int tag, int data) : tag(tag), data(data) { |
// Must be non-positive or a PartType value. |
DCHECK(tag < NUMBER_OF_PART_TYPES); |
} |
@@ -3481,12 +3317,10 @@ class CompiledReplacement { |
int data; |
}; |
- template<typename Char> |
+ template <typename Char> |
bool ParseReplacementPattern(ZoneList<ReplacementPart>* parts, |
- Vector<Char> characters, |
- int capture_count, |
- int subject_length, |
- Zone* zone) { |
+ Vector<Char> characters, int capture_count, |
+ int subject_length, Zone* zone) { |
int length = characters.length(); |
int last = 0; |
for (int i = 0; i < length; i++) { |
@@ -3498,83 +3332,85 @@ class CompiledReplacement { |
} |
Char c2 = characters[next_index]; |
switch (c2) { |
- case '$': |
- if (i > last) { |
- // There is a substring before. Include the first "$". |
- parts->Add(ReplacementPart::ReplacementSubString(last, next_index), |
- zone); |
- last = next_index + 1; // Continue after the second "$". |
- } else { |
- // Let the next substring start with the second "$". |
- last = next_index; |
- } |
- i = next_index; |
- break; |
- case '`': |
- if (i > last) { |
- parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
- } |
- parts->Add(ReplacementPart::SubjectPrefix(), zone); |
- i = next_index; |
- last = i + 1; |
- break; |
- case '\'': |
- if (i > last) { |
- parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
- } |
- parts->Add(ReplacementPart::SubjectSuffix(subject_length), zone); |
- i = next_index; |
- last = i + 1; |
- break; |
- case '&': |
- if (i > last) { |
- parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
- } |
- parts->Add(ReplacementPart::SubjectMatch(), zone); |
- i = next_index; |
- last = i + 1; |
- break; |
- case '0': |
- case '1': |
- case '2': |
- case '3': |
- case '4': |
- case '5': |
- case '6': |
- case '7': |
- case '8': |
- case '9': { |
- int capture_ref = c2 - '0'; |
- if (capture_ref > capture_count) { |
+ case '$': |
+ if (i > last) { |
+ // There is a substring before. Include the first "$". |
+ parts->Add( |
+ ReplacementPart::ReplacementSubString(last, next_index), |
+ zone); |
+ last = next_index + 1; // Continue after the second "$". |
+ } else { |
+ // Let the next substring start with the second "$". |
+ last = next_index; |
+ } |
i = next_index; |
- continue; |
- } |
- int second_digit_index = next_index + 1; |
- if (second_digit_index < length) { |
- // Peek ahead to see if we have two digits. |
- Char c3 = characters[second_digit_index]; |
- if ('0' <= c3 && c3 <= '9') { // Double digits. |
- int double_digit_ref = capture_ref * 10 + c3 - '0'; |
- if (double_digit_ref <= capture_count) { |
- next_index = second_digit_index; |
- capture_ref = double_digit_ref; |
- } |
+ break; |
+ case '`': |
+ if (i > last) { |
+ parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
} |
- } |
- if (capture_ref > 0) { |
+ parts->Add(ReplacementPart::SubjectPrefix(), zone); |
+ i = next_index; |
+ last = i + 1; |
+ break; |
+ case '\'': |
+ if (i > last) { |
+ parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
+ } |
+ parts->Add(ReplacementPart::SubjectSuffix(subject_length), zone); |
+ i = next_index; |
+ last = i + 1; |
+ break; |
+ case '&': |
if (i > last) { |
parts->Add(ReplacementPart::ReplacementSubString(last, i), zone); |
} |
- DCHECK(capture_ref <= capture_count); |
- parts->Add(ReplacementPart::SubjectCapture(capture_ref), zone); |
- last = next_index + 1; |
+ parts->Add(ReplacementPart::SubjectMatch(), zone); |
+ i = next_index; |
+ last = i + 1; |
+ break; |
+ case '0': |
+ case '1': |
+ case '2': |
+ case '3': |
+ case '4': |
+ case '5': |
+ case '6': |
+ case '7': |
+ case '8': |
+ case '9': { |
+ int capture_ref = c2 - '0'; |
+ if (capture_ref > capture_count) { |
+ i = next_index; |
+ continue; |
+ } |
+ int second_digit_index = next_index + 1; |
+ if (second_digit_index < length) { |
+ // Peek ahead to see if we have two digits. |
+ Char c3 = characters[second_digit_index]; |
+ if ('0' <= c3 && c3 <= '9') { // Double digits. |
+ int double_digit_ref = capture_ref * 10 + c3 - '0'; |
+ if (double_digit_ref <= capture_count) { |
+ next_index = second_digit_index; |
+ capture_ref = double_digit_ref; |
+ } |
+ } |
+ } |
+ if (capture_ref > 0) { |
+ if (i > last) { |
+ parts->Add(ReplacementPart::ReplacementSubString(last, i), |
+ zone); |
+ } |
+ DCHECK(capture_ref <= capture_count); |
+ parts->Add(ReplacementPart::SubjectCapture(capture_ref), zone); |
+ last = next_index + 1; |
+ } |
+ i = next_index; |
+ break; |
} |
- i = next_index; |
- break; |
- } |
- default: |
- i = next_index; |
- break; |
+ default: |
+ i = next_index; |
+ break; |
} |
} |
} |
@@ -3595,8 +3431,7 @@ class CompiledReplacement { |
}; |
-bool CompiledReplacement::Compile(Handle<String> replacement, |
- int capture_count, |
+bool CompiledReplacement::Compile(Handle<String> replacement, int capture_count, |
int subject_length) { |
{ |
DisallowHeapAllocation no_gc; |
@@ -3604,18 +3439,12 @@ bool CompiledReplacement::Compile(Handle<String> replacement, |
DCHECK(content.IsFlat()); |
bool simple = false; |
if (content.IsOneByte()) { |
- simple = ParseReplacementPattern(&parts_, |
- content.ToOneByteVector(), |
- capture_count, |
- subject_length, |
- zone()); |
+ simple = ParseReplacementPattern(&parts_, content.ToOneByteVector(), |
+ capture_count, subject_length, zone()); |
} else { |
DCHECK(content.IsTwoByte()); |
- simple = ParseReplacementPattern(&parts_, |
- content.ToUC16Vector(), |
- capture_count, |
- subject_length, |
- zone()); |
+ simple = ParseReplacementPattern(&parts_, content.ToUC16Vector(), |
+ capture_count, subject_length, zone()); |
} |
if (simple) return true; |
} |
@@ -3644,9 +3473,7 @@ bool CompiledReplacement::Compile(Handle<String> replacement, |
void CompiledReplacement::Apply(ReplacementStringBuilder* builder, |
- int match_from, |
- int match_to, |
- int32_t* match) { |
+ int match_from, int match_to, int32_t* match) { |
DCHECK_LT(0, parts_.length()); |
for (int i = 0, n = parts_.length(); i < n; i++) { |
ReplacementPart part = parts_[i]; |
@@ -3701,10 +3528,8 @@ void FindOneByteStringIndices(Vector<const uint8_t> subject, char pattern, |
} |
-void FindTwoByteStringIndices(const Vector<const uc16> subject, |
- uc16 pattern, |
- ZoneList<int>* indices, |
- unsigned int limit, |
+void FindTwoByteStringIndices(const Vector<const uc16> subject, uc16 pattern, |
+ ZoneList<int>* indices, unsigned int limit, |
Zone* zone) { |
DCHECK(limit > 0); |
const uc16* subject_start = subject.start(); |
@@ -3719,12 +3544,9 @@ void FindTwoByteStringIndices(const Vector<const uc16> subject, |
template <typename SubjectChar, typename PatternChar> |
-void FindStringIndices(Isolate* isolate, |
- Vector<const SubjectChar> subject, |
+void FindStringIndices(Isolate* isolate, Vector<const SubjectChar> subject, |
Vector<const PatternChar> pattern, |
- ZoneList<int>* indices, |
- unsigned int limit, |
- Zone* zone) { |
+ ZoneList<int>* indices, unsigned int limit, Zone* zone) { |
DCHECK(limit > 0); |
// Collect indices of pattern in subject. |
// Stop after finding at most limit values. |
@@ -3741,12 +3563,9 @@ void FindStringIndices(Isolate* isolate, |
} |
-void FindStringIndicesDispatch(Isolate* isolate, |
- String* subject, |
- String* pattern, |
- ZoneList<int>* indices, |
- unsigned int limit, |
- Zone* zone) { |
+void FindStringIndicesDispatch(Isolate* isolate, String* subject, |
+ String* pattern, ZoneList<int>* indices, |
+ unsigned int limit, Zone* zone) { |
{ |
DisallowHeapAllocation no_gc; |
String::FlatContent subject_content = subject->GetFlatContent(); |
@@ -3762,20 +3581,12 @@ void FindStringIndicesDispatch(Isolate* isolate, |
FindOneByteStringIndices(subject_vector, pattern_vector[0], indices, |
limit, zone); |
} else { |
- FindStringIndices(isolate, |
- subject_vector, |
- pattern_vector, |
- indices, |
- limit, |
- zone); |
+ FindStringIndices(isolate, subject_vector, pattern_vector, indices, |
+ limit, zone); |
} |
} else { |
- FindStringIndices(isolate, |
- subject_vector, |
- pattern_content.ToUC16Vector(), |
- indices, |
- limit, |
- zone); |
+ FindStringIndices(isolate, subject_vector, |
+ pattern_content.ToUC16Vector(), indices, limit, zone); |
} |
} else { |
Vector<const uc16> subject_vector = subject_content.ToUC16Vector(); |
@@ -3783,34 +3594,20 @@ void FindStringIndicesDispatch(Isolate* isolate, |
Vector<const uint8_t> pattern_vector = |
pattern_content.ToOneByteVector(); |
if (pattern_vector.length() == 1) { |
- FindTwoByteStringIndices(subject_vector, |
- pattern_vector[0], |
- indices, |
- limit, |
- zone); |
+ FindTwoByteStringIndices(subject_vector, pattern_vector[0], indices, |
+ limit, zone); |
} else { |
- FindStringIndices(isolate, |
- subject_vector, |
- pattern_vector, |
- indices, |
- limit, |
- zone); |
+ FindStringIndices(isolate, subject_vector, pattern_vector, indices, |
+ limit, zone); |
} |
} else { |
Vector<const uc16> pattern_vector = pattern_content.ToUC16Vector(); |
if (pattern_vector.length() == 1) { |
- FindTwoByteStringIndices(subject_vector, |
- pattern_vector[0], |
- indices, |
- limit, |
- zone); |
+ FindTwoByteStringIndices(subject_vector, pattern_vector[0], indices, |
+ limit, zone); |
} else { |
- FindStringIndices(isolate, |
- subject_vector, |
- pattern_vector, |
- indices, |
- limit, |
- zone); |
+ FindStringIndices(isolate, subject_vector, pattern_vector, indices, |
+ limit, zone); |
} |
} |
} |
@@ -3818,13 +3615,10 @@ void FindStringIndicesDispatch(Isolate* isolate, |
} |
-template<typename ResultSeqString> |
+template <typename ResultSeqString> |
MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString( |
- Isolate* isolate, |
- Handle<String> subject, |
- Handle<JSRegExp> pattern_regexp, |
- Handle<String> replacement, |
- Handle<JSArray> last_match_info) { |
+ Isolate* isolate, Handle<String> subject, Handle<JSRegExp> pattern_regexp, |
+ Handle<String> replacement, Handle<JSArray> last_match_info) { |
DCHECK(subject->IsFlat()); |
DCHECK(replacement->IsFlat()); |
@@ -3837,18 +3631,17 @@ MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString( |
int pattern_len = pattern->length(); |
int replacement_len = replacement->length(); |
- FindStringIndicesDispatch( |
- isolate, *subject, pattern, &indices, 0xffffffff, zone_scope.zone()); |
+ FindStringIndicesDispatch(isolate, *subject, pattern, &indices, 0xffffffff, |
+ zone_scope.zone()); |
int matches = indices.length(); |
if (matches == 0) return *subject; |
// Detect integer overflow. |
- int64_t result_len_64 = |
- (static_cast<int64_t>(replacement_len) - |
- static_cast<int64_t>(pattern_len)) * |
- static_cast<int64_t>(matches) + |
- static_cast<int64_t>(subject_len); |
+ int64_t result_len_64 = (static_cast<int64_t>(replacement_len) - |
+ static_cast<int64_t>(pattern_len)) * |
+ static_cast<int64_t>(matches) + |
+ static_cast<int64_t>(subject_len); |
int result_len; |
if (result_len_64 > static_cast<int64_t>(String::kMaxLength)) { |
STATIC_ASSERT(String::kMaxLength < kMaxInt); |
@@ -3873,18 +3666,14 @@ MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString( |
for (int i = 0; i < matches; i++) { |
// Copy non-matched subject content. |
if (subject_pos < indices.at(i)) { |
- String::WriteToFlat(*subject, |
- result->GetChars() + result_pos, |
- subject_pos, |
- indices.at(i)); |
+ String::WriteToFlat(*subject, result->GetChars() + result_pos, |
+ subject_pos, indices.at(i)); |
result_pos += indices.at(i) - subject_pos; |
} |
// Replace match. |
if (replacement_len > 0) { |
- String::WriteToFlat(*replacement, |
- result->GetChars() + result_pos, |
- 0, |
+ String::WriteToFlat(*replacement, result->GetChars() + result_pos, 0, |
replacement_len); |
result_pos += replacement_len; |
} |
@@ -3893,14 +3682,12 @@ MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString( |
} |
// Add remaining subject content at the end. |
if (subject_pos < subject_len) { |
- String::WriteToFlat(*subject, |
- result->GetChars() + result_pos, |
- subject_pos, |
+ String::WriteToFlat(*subject, result->GetChars() + result_pos, subject_pos, |
subject_len); |
} |
- int32_t match_indices[] = { indices.at(matches - 1), |
- indices.at(matches - 1) + pattern_len }; |
+ int32_t match_indices[] = {indices.at(matches - 1), |
+ indices.at(matches - 1) + pattern_len}; |
RegExpImpl::SetLastMatchInfo(last_match_info, subject, 0, match_indices); |
return *result; |
@@ -3908,11 +3695,8 @@ MUST_USE_RESULT static Object* StringReplaceGlobalAtomRegExpWithString( |
MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
- Isolate* isolate, |
- Handle<String> subject, |
- Handle<JSRegExp> regexp, |
- Handle<String> replacement, |
- Handle<JSArray> last_match_info) { |
+ Isolate* isolate, Handle<String> subject, Handle<JSRegExp> regexp, |
+ Handle<String> replacement, Handle<JSArray> last_match_info) { |
DCHECK(subject->IsFlat()); |
DCHECK(replacement->IsFlat()); |
@@ -3922,14 +3706,12 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
// CompiledReplacement uses zone allocation. |
ZoneScope zone_scope(isolate->runtime_zone()); |
CompiledReplacement compiled_replacement(zone_scope.zone()); |
- bool simple_replace = compiled_replacement.Compile(replacement, |
- capture_count, |
- subject_length); |
+ bool simple_replace = |
+ compiled_replacement.Compile(replacement, capture_count, subject_length); |
// Shortcut for simple non-regexp global replacements |
if (regexp->TypeTag() == JSRegExp::ATOM && simple_replace) { |
- if (subject->HasOnlyOneByteChars() && |
- replacement->HasOnlyOneByteChars()) { |
+ if (subject->HasOnlyOneByteChars() && replacement->HasOnlyOneByteChars()) { |
return StringReplaceGlobalAtomRegExpWithString<SeqOneByteString>( |
isolate, subject, regexp, replacement, last_match_info); |
} else { |
@@ -3951,9 +3733,7 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
// from. Global regexps can match any number of times, so we guess |
// conservatively. |
int expected_parts = (compiled_replacement.parts() + 1) * 4 + 1; |
- ReplacementStringBuilder builder(isolate->heap(), |
- subject, |
- expected_parts); |
+ ReplacementStringBuilder builder(isolate->heap(), subject, expected_parts); |
// Number of parts added by compiled replacement plus preceeding |
// string and possibly suffix after last match. It is possible for |
@@ -3975,10 +3755,7 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
if (simple_replace) { |
builder.AddString(replacement); |
} else { |
- compiled_replacement.Apply(&builder, |
- start, |
- end, |
- current_match); |
+ compiled_replacement.Apply(&builder, start, end, current_match); |
} |
prev = end; |
@@ -3992,9 +3769,7 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
builder.AddSubjectSlice(prev, subject_length); |
} |
- RegExpImpl::SetLastMatchInfo(last_match_info, |
- subject, |
- capture_count, |
+ RegExpImpl::SetLastMatchInfo(last_match_info, subject, capture_count, |
global_cache.LastSuccessfulMatch()); |
Handle<String> result; |
@@ -4005,9 +3780,7 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithString( |
template <typename ResultSeqString> |
MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithEmptyString( |
- Isolate* isolate, |
- Handle<String> subject, |
- Handle<JSRegExp> regexp, |
+ Isolate* isolate, Handle<String> subject, Handle<JSRegExp> regexp, |
Handle<JSArray> last_match_info) { |
DCHECK(subject->IsFlat()); |
@@ -4067,15 +3840,13 @@ MUST_USE_RESULT static Object* StringReplaceGlobalRegExpWithEmptyString( |
if (global_cache.HasException()) return isolate->heap()->exception(); |
- RegExpImpl::SetLastMatchInfo(last_match_info, |
- subject, |
- capture_count, |
+ RegExpImpl::SetLastMatchInfo(last_match_info, subject, capture_count, |
global_cache.LastSuccessfulMatch()); |
if (prev < subject_length) { |
// Add substring subject[prev;length] to answer string. |
- String::WriteToFlat( |
- *subject, answer->GetChars() + position, prev, subject_length); |
+ String::WriteToFlat(*subject, answer->GetChars() + position, prev, |
+ subject_length); |
position += subject_length - prev; |
} |
@@ -4128,19 +3899,16 @@ RUNTIME_FUNCTION(Runtime_StringReplaceGlobalRegExpWithString) { |
replacement = String::Flatten(replacement); |
- return StringReplaceGlobalRegExpWithString( |
- isolate, subject, regexp, replacement, last_match_info); |
+ return StringReplaceGlobalRegExpWithString(isolate, subject, regexp, |
+ replacement, last_match_info); |
} |
// This may return an empty MaybeHandle if an exception is thrown or |
// we abort due to reaching the recursion limit. |
-MaybeHandle<String> StringReplaceOneCharWithString(Isolate* isolate, |
- Handle<String> subject, |
- Handle<String> search, |
- Handle<String> replace, |
- bool* found, |
- int recursion_limit) { |
+MaybeHandle<String> StringReplaceOneCharWithString( |
+ Isolate* isolate, Handle<String> subject, Handle<String> search, |
+ Handle<String> replace, bool* found, int recursion_limit) { |
StackLimitCheck stackLimitCheck(isolate); |
if (stackLimitCheck.HasOverflowed() || (recursion_limit == 0)) { |
return MaybeHandle<String>(); |
@@ -4151,17 +3919,16 @@ MaybeHandle<String> StringReplaceOneCharWithString(Isolate* isolate, |
Handle<String> first = Handle<String>(cons->first()); |
Handle<String> second = Handle<String>(cons->second()); |
Handle<String> new_first; |
- if (!StringReplaceOneCharWithString( |
- isolate, first, search, replace, found, recursion_limit) |
- .ToHandle(&new_first)) { |
+ if (!StringReplaceOneCharWithString(isolate, first, search, replace, found, |
+ recursion_limit).ToHandle(&new_first)) { |
return MaybeHandle<String>(); |
} |
if (*found) return isolate->factory()->NewConsString(new_first, second); |
Handle<String> new_second; |
- if (!StringReplaceOneCharWithString( |
- isolate, second, search, replace, found, recursion_limit) |
- .ToHandle(&new_second)) { |
+ if (!StringReplaceOneCharWithString(isolate, second, search, replace, found, |
+ recursion_limit) |
+ .ToHandle(&new_second)) { |
return MaybeHandle<String>(); |
} |
if (*found) return isolate->factory()->NewConsString(first, new_second); |
@@ -4174,8 +3941,7 @@ MaybeHandle<String> StringReplaceOneCharWithString(Isolate* isolate, |
Handle<String> first = isolate->factory()->NewSubString(subject, 0, index); |
Handle<String> cons1; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, cons1, |
- isolate->factory()->NewConsString(first, replace), |
+ isolate, cons1, isolate->factory()->NewConsString(first, replace), |
String); |
Handle<String> second = |
isolate->factory()->NewSubString(subject, index + 1, subject->length()); |
@@ -4196,9 +3962,8 @@ RUNTIME_FUNCTION(Runtime_StringReplaceOneCharWithString) { |
const int kRecursionLimit = 0x1000; |
bool found = false; |
Handle<String> result; |
- if (StringReplaceOneCharWithString( |
- isolate, subject, search, replace, &found, kRecursionLimit) |
- .ToHandle(&result)) { |
+ if (StringReplaceOneCharWithString(isolate, subject, search, replace, &found, |
+ kRecursionLimit).ToHandle(&result)) { |
return *result; |
} |
if (isolate->has_pending_exception()) return isolate->heap()->exception(); |
@@ -4206,8 +3971,8 @@ RUNTIME_FUNCTION(Runtime_StringReplaceOneCharWithString) { |
subject = String::Flatten(subject); |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, result, |
- StringReplaceOneCharWithString( |
- isolate, subject, search, replace, &found, kRecursionLimit)); |
+ StringReplaceOneCharWithString(isolate, subject, search, replace, &found, |
+ kRecursionLimit)); |
return *result; |
} |
@@ -4215,10 +3980,8 @@ RUNTIME_FUNCTION(Runtime_StringReplaceOneCharWithString) { |
// Perform string match of pattern on subject, starting at start index. |
// Caller must ensure that 0 <= start_index <= sub->length(), |
// and should check that pat->length() + start_index <= sub->length(). |
-int Runtime::StringMatch(Isolate* isolate, |
- Handle<String> sub, |
- Handle<String> pat, |
- int start_index) { |
+int Runtime::StringMatch(Isolate* isolate, Handle<String> sub, |
+ Handle<String> pat, int start_index) { |
DCHECK(0 <= start_index); |
DCHECK(start_index <= sub->length()); |
@@ -4240,27 +4003,18 @@ int Runtime::StringMatch(Isolate* isolate, |
if (seq_pat.IsOneByte()) { |
Vector<const uint8_t> pat_vector = seq_pat.ToOneByteVector(); |
if (seq_sub.IsOneByte()) { |
- return SearchString(isolate, |
- seq_sub.ToOneByteVector(), |
- pat_vector, |
+ return SearchString(isolate, seq_sub.ToOneByteVector(), pat_vector, |
start_index); |
} |
- return SearchString(isolate, |
- seq_sub.ToUC16Vector(), |
- pat_vector, |
+ return SearchString(isolate, seq_sub.ToUC16Vector(), pat_vector, |
start_index); |
} |
Vector<const uc16> pat_vector = seq_pat.ToUC16Vector(); |
if (seq_sub.IsOneByte()) { |
- return SearchString(isolate, |
- seq_sub.ToOneByteVector(), |
- pat_vector, |
+ return SearchString(isolate, seq_sub.ToOneByteVector(), pat_vector, |
start_index); |
} |
- return SearchString(isolate, |
- seq_sub.ToUC16Vector(), |
- pat_vector, |
- start_index); |
+ return SearchString(isolate, seq_sub.ToUC16Vector(), pat_vector, start_index); |
} |
@@ -4283,8 +4037,7 @@ RUNTIME_FUNCTION(Runtime_StringIndexOf) { |
template <typename schar, typename pchar> |
static int StringMatchBackwards(Vector<const schar> subject, |
- Vector<const pchar> pattern, |
- int idx) { |
+ Vector<const pchar> pattern, int idx) { |
int pattern_length = pattern.length(); |
DCHECK(pattern_length >= 1); |
DCHECK(idx + pattern_length <= subject.length()); |
@@ -4303,7 +4056,7 @@ static int StringMatchBackwards(Vector<const schar> subject, |
if (subject[i] != pattern_first_char) continue; |
int j = 1; |
while (j < pattern_length) { |
- if (pattern[j] != subject[i+j]) { |
+ if (pattern[j] != subject[i + j]) { |
break; |
} |
j++; |
@@ -4350,23 +4103,19 @@ RUNTIME_FUNCTION(Runtime_StringLastIndexOf) { |
if (pat_content.IsOneByte()) { |
Vector<const uint8_t> pat_vector = pat_content.ToOneByteVector(); |
if (sub_content.IsOneByte()) { |
- position = StringMatchBackwards(sub_content.ToOneByteVector(), |
- pat_vector, |
+ position = StringMatchBackwards(sub_content.ToOneByteVector(), pat_vector, |
start_index); |
} else { |
- position = StringMatchBackwards(sub_content.ToUC16Vector(), |
- pat_vector, |
+ position = StringMatchBackwards(sub_content.ToUC16Vector(), pat_vector, |
start_index); |
} |
} else { |
Vector<const uc16> pat_vector = pat_content.ToUC16Vector(); |
if (sub_content.IsOneByte()) { |
- position = StringMatchBackwards(sub_content.ToOneByteVector(), |
- pat_vector, |
+ position = StringMatchBackwards(sub_content.ToOneByteVector(), pat_vector, |
start_index); |
} else { |
- position = StringMatchBackwards(sub_content.ToUC16Vector(), |
- pat_vector, |
+ position = StringMatchBackwards(sub_content.ToUC16Vector(), pat_vector, |
start_index); |
} |
} |
@@ -4487,9 +4236,7 @@ RUNTIME_FUNCTION(Runtime_StringMatch) { |
return isolate->heap()->null_value(); |
} |
- RegExpImpl::SetLastMatchInfo(regexp_info, |
- subject, |
- capture_count, |
+ RegExpImpl::SetLastMatchInfo(regexp_info, subject, capture_count, |
global_cache.LastSuccessfulMatch()); |
int matches = offsets.length() / 2; |
@@ -4513,13 +4260,11 @@ RUNTIME_FUNCTION(Runtime_StringMatch) { |
// Only called from Runtime_RegExpExecMultiple so it doesn't need to maintain |
// separate last match info. See comment on that function. |
-template<bool has_capture> |
-static Object* SearchRegExpMultiple( |
- Isolate* isolate, |
- Handle<String> subject, |
- Handle<JSRegExp> regexp, |
- Handle<JSArray> last_match_array, |
- Handle<JSArray> result_array) { |
+template <bool has_capture> |
+static Object* SearchRegExpMultiple(Isolate* isolate, Handle<String> subject, |
+ Handle<JSRegExp> regexp, |
+ Handle<JSArray> last_match_array, |
+ Handle<JSArray> result_array) { |
DCHECK(subject->IsFlat()); |
DCHECK_NE(has_capture, regexp->CaptureCount() == 0); |
@@ -4529,11 +4274,10 @@ static Object* SearchRegExpMultiple( |
static const int kMinLengthToCache = 0x1000; |
if (subject_length > kMinLengthToCache) { |
- Handle<Object> cached_answer(RegExpResultsCache::Lookup( |
- isolate->heap(), |
- *subject, |
- regexp->data(), |
- RegExpResultsCache::REGEXP_MULTIPLE_INDICES), isolate); |
+ Handle<Object> cached_answer( |
+ RegExpResultsCache::Lookup(isolate->heap(), *subject, regexp->data(), |
+ RegExpResultsCache::REGEXP_MULTIPLE_INDICES), |
+ isolate); |
if (*cached_answer != Smi::FromInt(0)) { |
Handle<FixedArray> cached_fixed_array = |
Handle<FixedArray>(FixedArray::cast(*cached_answer)); |
@@ -4545,8 +4289,8 @@ static Object* SearchRegExpMultiple( |
cached_fixed_array->get(cached_fixed_array->length() - 1); |
Smi* js_array_length = Smi::cast(cached_fixed_array_last_element); |
result_array->set_length(js_array_length); |
- RegExpImpl::SetLastMatchInfo( |
- last_match_array, subject, capture_count, NULL); |
+ RegExpImpl::SetLastMatchInfo(last_match_array, subject, capture_count, |
+ NULL); |
return *result_array; |
} |
} |
@@ -4578,8 +4322,7 @@ static Object* SearchRegExpMultiple( |
match_start = current_match[0]; |
builder.EnsureCapacity(kMaxBuilderEntriesPerRegExpMatch); |
if (match_end < match_start) { |
- ReplacementStringBuilder::AddSubjectSlice(&builder, |
- match_end, |
+ ReplacementStringBuilder::AddSubjectSlice(&builder, match_end, |
match_start); |
} |
match_end = current_match[1]; |
@@ -4588,13 +4331,11 @@ static Object* SearchRegExpMultiple( |
HandleScope temp_scope(isolate); |
Handle<String> match; |
if (!first) { |
- match = isolate->factory()->NewProperSubString(subject, |
- match_start, |
+ match = isolate->factory()->NewProperSubString(subject, match_start, |
match_end); |
} else { |
- match = isolate->factory()->NewSubString(subject, |
- match_start, |
- match_end); |
+ match = |
+ isolate->factory()->NewSubString(subject, match_start, match_end); |
first = false; |
} |
@@ -4632,13 +4373,12 @@ static Object* SearchRegExpMultiple( |
if (match_start >= 0) { |
// Finished matching, with at least one match. |
if (match_end < subject_length) { |
- ReplacementStringBuilder::AddSubjectSlice(&builder, |
- match_end, |
+ ReplacementStringBuilder::AddSubjectSlice(&builder, match_end, |
subject_length); |
} |
- RegExpImpl::SetLastMatchInfo( |
- last_match_array, subject, capture_count, NULL); |
+ RegExpImpl::SetLastMatchInfo(last_match_array, subject, capture_count, |
+ NULL); |
if (subject_length > kMinLengthToCache) { |
// Store the length of the result array into the last element of the |
@@ -4648,10 +4388,8 @@ static Object* SearchRegExpMultiple( |
fixed_array->set(fixed_array->length() - 1, |
Smi::FromInt(builder.length())); |
// Cache the result and turn the FixedArray into a COW array. |
- RegExpResultsCache::Enter(isolate, |
- subject, |
- handle(regexp->data(), isolate), |
- fixed_array, |
+ RegExpResultsCache::Enter(isolate, subject, |
+ handle(regexp->data(), isolate), fixed_array, |
RegExpResultsCache::REGEXP_MULTIPLE_INDICES); |
} |
return *builder.ToJSArray(result_array); |
@@ -4679,11 +4417,11 @@ RUNTIME_FUNCTION(Runtime_RegExpExecMultiple) { |
RUNTIME_ASSERT(regexp->GetFlags().is_global()); |
if (regexp->CaptureCount() == 0) { |
- return SearchRegExpMultiple<false>( |
- isolate, subject, regexp, last_match_info, result_array); |
+ return SearchRegExpMultiple<false>(isolate, subject, regexp, |
+ last_match_info, result_array); |
} else { |
- return SearchRegExpMultiple<true>( |
- isolate, subject, regexp, last_match_info, result_array); |
+ return SearchRegExpMultiple<true>(isolate, subject, regexp, last_match_info, |
+ result_array); |
} |
} |
@@ -4700,8 +4438,8 @@ RUNTIME_FUNCTION(Runtime_NumberToRadixString) { |
if (value >= 0 && value < radix) { |
// Character array used for conversion. |
static const char kCharTable[] = "0123456789abcdefghijklmnopqrstuvwxyz"; |
- return *isolate->factory()-> |
- LookupSingleCharacterStringFromCode(kCharTable[value]); |
+ return *isolate->factory()->LookupSingleCharacterStringFromCode( |
+ kCharTable[value]); |
} |
} |
@@ -4827,8 +4565,8 @@ static MaybeHandle<Name> ToName(Isolate* isolate, Handle<Object> key) { |
return Handle<Name>::cast(key); |
} else { |
Handle<Object> converted; |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, converted, Execution::ToString(isolate, key), Name); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, converted, |
+ Execution::ToString(isolate, key), Name); |
return Handle<Name>::cast(converted); |
} |
} |
@@ -4859,7 +4597,7 @@ MaybeHandle<Object> Runtime::GetObjectProperty(Isolate* isolate, |
Handle<Object> object, |
Handle<Object> key) { |
if (object->IsUndefined() || object->IsNull()) { |
- Handle<Object> args[2] = { key, object }; |
+ Handle<Object> args[2] = {key, object}; |
THROW_NEW_ERROR(isolate, NewTypeError("non_object_property_load", |
HandleVector(args, 2)), |
Object); |
@@ -4893,8 +4631,7 @@ RUNTIME_FUNCTION(Runtime_GetProperty) { |
CONVERT_ARG_HANDLE_CHECKED(Object, key, 1); |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Runtime::GetObjectProperty(isolate, object, key)); |
+ isolate, result, Runtime::GetObjectProperty(isolate, object, key)); |
return *result; |
} |
@@ -4920,8 +4657,7 @@ RUNTIME_FUNCTION(Runtime_KeyedGetProperty) { |
// for objects that require access checks. |
if (receiver_obj->IsJSObject()) { |
if (!receiver_obj->IsJSGlobalProxy() && |
- !receiver_obj->IsAccessCheckNeeded() && |
- key_obj->IsName()) { |
+ !receiver_obj->IsAccessCheckNeeded() && key_obj->IsName()) { |
DisallowHeapAllocation no_allocation; |
Handle<JSObject> receiver = Handle<JSObject>::cast(receiver_obj); |
Handle<Name> key = Handle<Name>::cast(key_obj); |
@@ -4945,7 +4681,7 @@ RUNTIME_FUNCTION(Runtime_KeyedGetProperty) { |
// double values requires boxing. |
if (!it.representation().IsDouble()) { |
keyed_lookup_cache->Update(receiver_map, key, |
- field_index.GetKeyedLookupCacheIndex()); |
+ field_index.GetKeyedLookupCacheIndex()); |
} |
AllowHeapAllocation allow_allocation; |
return *JSObject::FastPropertyAt(receiver, it.representation(), |
@@ -5104,8 +4840,7 @@ RUNTIME_FUNCTION(Runtime_DefineDataPropertyUnchecked) { |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, result, |
JSObject::SetOwnPropertyIgnoreAttributes( |
- js_object, name, obj_value, attr, |
- JSObject::DONT_FORCE_FIELD)); |
+ js_object, name, obj_value, attr, JSObject::DONT_FORCE_FIELD)); |
return *result; |
} |
@@ -5133,7 +4868,7 @@ MaybeHandle<Object> Runtime::SetObjectProperty(Isolate* isolate, |
Handle<Object> value, |
StrictMode strict_mode) { |
if (object->IsUndefined() || object->IsNull()) { |
- Handle<Object> args[2] = { key, object }; |
+ Handle<Object> args[2] = {key, object}; |
THROW_NEW_ERROR(isolate, NewTypeError("non_object_property_store", |
HandleVector(args, 2)), |
Object); |
@@ -5144,8 +4879,8 @@ MaybeHandle<Object> Runtime::SetObjectProperty(Isolate* isolate, |
if (key->IsSymbol()) { |
name_object = key; |
} else { |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, name_object, Execution::ToString(isolate, key), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, name_object, |
+ Execution::ToString(isolate, key), Object); |
} |
Handle<Name> name = Handle<Name>::cast(name_object); |
return Object::SetProperty(Handle<JSProxy>::cast(object), name, value, |
@@ -5174,8 +4909,8 @@ MaybeHandle<Object> Runtime::SetObjectProperty(Isolate* isolate, |
if (js_object->HasExternalArrayElements() || |
js_object->HasFixedTypedArrayElements()) { |
if (!value->IsNumber() && !value->IsUndefined()) { |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, value, Execution::ToNumber(isolate, value), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, value, |
+ Execution::ToNumber(isolate, value), Object); |
} |
} |
@@ -5208,8 +4943,8 @@ MaybeHandle<Object> Runtime::SetObjectProperty(Isolate* isolate, |
// Call-back into JavaScript to convert the key to a string. |
Handle<Object> converted; |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, converted, Execution::ToString(isolate, key), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, converted, |
+ Execution::ToString(isolate, key), Object); |
Handle<String> name = Handle<String>::cast(converted); |
if (name->AsArrayIndex(&index)) { |
@@ -5242,15 +4977,15 @@ MaybeHandle<Object> Runtime::DefineObjectProperty(Handle<JSObject> js_object, |
return value; |
} |
- return JSObject::SetElement(js_object, index, value, attr, |
- SLOPPY, false, DEFINE_PROPERTY); |
+ return JSObject::SetElement(js_object, index, value, attr, SLOPPY, false, |
+ DEFINE_PROPERTY); |
} |
if (key->IsName()) { |
Handle<Name> name = Handle<Name>::cast(key); |
if (name->AsArrayIndex(&index)) { |
- return JSObject::SetElement(js_object, index, value, attr, |
- SLOPPY, false, DEFINE_PROPERTY); |
+ return JSObject::SetElement(js_object, index, value, attr, SLOPPY, false, |
+ DEFINE_PROPERTY); |
} else { |
if (name->IsString()) name = String::Flatten(Handle<String>::cast(name)); |
return JSObject::SetOwnPropertyIgnoreAttributes(js_object, name, value, |
@@ -5260,13 +4995,13 @@ MaybeHandle<Object> Runtime::DefineObjectProperty(Handle<JSObject> js_object, |
// Call-back into JavaScript to convert the key to a string. |
Handle<Object> converted; |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, converted, Execution::ToString(isolate, key), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, converted, |
+ Execution::ToString(isolate, key), Object); |
Handle<String> name = Handle<String>::cast(converted); |
if (name->AsArrayIndex(&index)) { |
- return JSObject::SetElement(js_object, index, value, attr, |
- SLOPPY, false, DEFINE_PROPERTY); |
+ return JSObject::SetElement(js_object, index, value, attr, SLOPPY, false, |
+ DEFINE_PROPERTY); |
} else { |
return JSObject::SetOwnPropertyIgnoreAttributes(js_object, name, value, |
attr); |
@@ -5300,8 +5035,8 @@ MaybeHandle<Object> Runtime::DeleteObjectProperty(Isolate* isolate, |
} else { |
// Call-back into JavaScript to convert the key to a string. |
Handle<Object> converted; |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, converted, Execution::ToString(isolate, key), Object); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, converted, |
+ Execution::ToString(isolate, key), Object); |
name = Handle<String>::cast(converted); |
} |
@@ -5383,7 +5118,7 @@ RUNTIME_FUNCTION(Runtime_AddPropertyForTemplate) { |
duplicate = maybe.value; |
} |
if (duplicate) { |
- Handle<Object> args[1] = { key }; |
+ Handle<Object> args[1] = {key}; |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, |
NewTypeError("duplicate_template_property", HandleVector(args, 1))); |
@@ -5509,11 +5244,10 @@ RUNTIME_FUNCTION(Runtime_StoreArrayLiteralElement) { |
if (value->IsNumber()) { |
DCHECK(IsFastSmiElementsKind(elements_kind)); |
ElementsKind transitioned_kind = IsFastHoleyElementsKind(elements_kind) |
- ? FAST_HOLEY_DOUBLE_ELEMENTS |
- : FAST_DOUBLE_ELEMENTS; |
+ ? FAST_HOLEY_DOUBLE_ELEMENTS |
+ : FAST_DOUBLE_ELEMENTS; |
if (IsMoreGeneralElementsKindTransition( |
- boilerplate_object->GetElementsKind(), |
- transitioned_kind)) { |
+ boilerplate_object->GetElementsKind(), transitioned_kind)) { |
JSObject::TransitionElementsKind(boilerplate_object, transitioned_kind); |
} |
JSObject::TransitionElementsKind(object, transitioned_kind); |
@@ -5524,8 +5258,8 @@ RUNTIME_FUNCTION(Runtime_StoreArrayLiteralElement) { |
} else { |
if (!IsFastObjectElementsKind(elements_kind)) { |
ElementsKind transitioned_kind = IsFastHoleyElementsKind(elements_kind) |
- ? FAST_HOLEY_ELEMENTS |
- : FAST_ELEMENTS; |
+ ? FAST_HOLEY_ELEMENTS |
+ : FAST_ELEMENTS; |
JSObject::TransitionElementsKind(object, transitioned_kind); |
ElementsKind boilerplate_elements_kind = |
boilerplate_object->GetElementsKind(); |
@@ -5550,8 +5284,8 @@ RUNTIME_FUNCTION(Runtime_DebugCallbackSupportsStepping) { |
} |
CONVERT_ARG_CHECKED(Object, callback, 0); |
// We do not step into the callback if it's a builtin or not even a function. |
- return isolate->heap()->ToBoolean( |
- callback->IsJSFunction() && !JSFunction::cast(callback)->IsBuiltin()); |
+ return isolate->heap()->ToBoolean(callback->IsJSFunction() && |
+ !JSFunction::cast(callback)->IsBuiltin()); |
} |
@@ -5633,11 +5367,11 @@ RUNTIME_FUNCTION(Runtime_DeleteProperty) { |
CONVERT_ARG_HANDLE_CHECKED(Name, key, 1); |
CONVERT_STRICT_MODE_ARG_CHECKED(strict_mode, 2); |
JSReceiver::DeleteMode delete_mode = strict_mode == STRICT |
- ? JSReceiver::STRICT_DELETION : JSReceiver::NORMAL_DELETION; |
+ ? JSReceiver::STRICT_DELETION |
+ : JSReceiver::NORMAL_DELETION; |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- JSReceiver::DeleteProperty(object, key, delete_mode)); |
+ isolate, result, JSReceiver::DeleteProperty(object, key, delete_mode)); |
return *result; |
} |
@@ -5689,14 +5423,12 @@ RUNTIME_FUNCTION(Runtime_HasOwnProperty) { |
return isolate->heap()->true_value(); |
} |
Map* map = js_obj->map(); |
- if (!key_is_array_index && |
- !map->has_named_interceptor() && |
+ if (!key_is_array_index && !map->has_named_interceptor() && |
!HeapObject::cast(map->prototype())->map()->is_hidden_prototype()) { |
return isolate->heap()->false_value(); |
} |
// Slow case. |
- return HasOwnPropertyImplementation(isolate, |
- Handle<JSObject>(js_obj), |
+ return HasOwnPropertyImplementation(isolate, Handle<JSObject>(js_obj), |
Handle<Name>(key)); |
} else if (object->IsString() && key_is_array_index) { |
// Well, there is one exception: Handle [] on strings. |
@@ -5821,8 +5553,8 @@ RUNTIME_FUNCTION(Runtime_GetOwnPropertyNames) { |
if (obj->IsJSGlobalProxy()) { |
// Only collect names if access is permitted. |
if (obj->IsAccessCheckNeeded() && |
- !isolate->MayNamedAccess( |
- obj, isolate->factory()->undefined_value(), v8::ACCESS_KEYS)) { |
+ !isolate->MayNamedAccess(obj, isolate->factory()->undefined_value(), |
+ v8::ACCESS_KEYS)) { |
isolate->ReportFailedAccessCheck(obj, v8::ACCESS_KEYS); |
RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate); |
return *isolate->factory()->NewJSArray(0); |
@@ -5907,8 +5639,7 @@ RUNTIME_FUNCTION(Runtime_GetOwnPropertyNames) { |
// hidden prototype duplicates. |
if (hidden_strings > 0) { |
Handle<FixedArray> old_names = names; |
- names = isolate->factory()->NewFixedArray( |
- names->length() - hidden_strings); |
+ names = isolate->factory()->NewFixedArray(names->length() - hidden_strings); |
int dest_pos = 0; |
for (int i = 0; i < total_property_count; i++) { |
Object* name = old_names->get(i); |
@@ -6003,8 +5734,8 @@ RUNTIME_FUNCTION(Runtime_OwnKeys) { |
if (object->IsJSGlobalProxy()) { |
// Do access checks before going to the global object. |
if (object->IsAccessCheckNeeded() && |
- !isolate->MayNamedAccess( |
- object, isolate->factory()->undefined_value(), v8::ACCESS_KEYS)) { |
+ !isolate->MayNamedAccess(object, isolate->factory()->undefined_value(), |
+ v8::ACCESS_KEYS)) { |
isolate->ReportFailedAccessCheck(object, v8::ACCESS_KEYS); |
RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate); |
return *isolate->factory()->NewJSArray(0); |
@@ -6018,8 +5749,7 @@ RUNTIME_FUNCTION(Runtime_OwnKeys) { |
Handle<FixedArray> contents; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, contents, |
- JSReceiver::GetKeys(object, JSReceiver::OWN_ONLY)); |
+ isolate, contents, JSReceiver::GetKeys(object, JSReceiver::OWN_ONLY)); |
// Some fast paths through GetKeysInFixedArrayFor reuse a cached |
// property array and since the result is mutable we have to create |
@@ -6080,8 +5810,8 @@ RUNTIME_FUNCTION(Runtime_GetArgumentsProperty) { |
// Convert the key to a string. |
Handle<Object> converted; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, converted, Execution::ToString(isolate, raw_key)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, converted, |
+ Execution::ToString(isolate, raw_key)); |
Handle<String> key = Handle<String>::cast(converted); |
// Try to convert the string key into an array index. |
@@ -6212,7 +5942,7 @@ RUNTIME_FUNCTION(Runtime_Booleanize) { |
} |
-static bool AreDigits(const uint8_t*s, int from, int to) { |
+static bool AreDigits(const uint8_t* s, int from, int to) { |
for (int i = from; i < to; i++) { |
if (s[i] < '0' || s[i] > '9') return false; |
} |
@@ -6221,7 +5951,7 @@ static bool AreDigits(const uint8_t*s, int from, int to) { |
} |
-static int ParseDecimalInteger(const uint8_t*s, int from, int to) { |
+static int ParseDecimalInteger(const uint8_t* s, int from, int to) { |
DCHECK(to - from < 10); // Overflow is not possible. |
DCHECK(from < to); |
int d = s[from] - '0'; |
@@ -6267,8 +5997,7 @@ RUNTIME_FUNCTION(Runtime_StringToNumber) { |
if (minus) { |
if (d == 0) return isolate->heap()->minus_zero_value(); |
d = -d; |
- } else if (!subject->HasHashCode() && |
- len <= String::kMaxArrayIndexSize && |
+ } else if (!subject->HasHashCode() && len <= String::kMaxArrayIndexSize && |
(len == 1 || data[0] != '0')) { |
// String hash is not calculated yet but all the data are present. |
// Update the hash field to speed up sequential convertions. |
@@ -6292,8 +6021,8 @@ RUNTIME_FUNCTION(Runtime_StringToNumber) { |
flags |= ALLOW_OCTAL | ALLOW_BINARY; |
} |
- return *isolate->factory()->NewNumber(StringToDouble( |
- isolate->unicode_cache(), *subject, flags)); |
+ return *isolate->factory()->NewNumber( |
+ StringToDouble(isolate->unicode_cache(), *subject, flags)); |
} |
@@ -6333,10 +6062,9 @@ RUNTIME_FUNCTION(Runtime_URIEscape) { |
DCHECK(string->IsFlat()); |
Handle<String> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- string->IsOneByteRepresentationUnderneath() |
- ? URIEscape::Escape<uint8_t>(isolate, source) |
- : URIEscape::Escape<uc16>(isolate, source)); |
+ isolate, result, string->IsOneByteRepresentationUnderneath() |
+ ? URIEscape::Escape<uint8_t>(isolate, source) |
+ : URIEscape::Escape<uc16>(isolate, source)); |
return *result; |
} |
@@ -6349,10 +6077,9 @@ RUNTIME_FUNCTION(Runtime_URIUnescape) { |
DCHECK(string->IsFlat()); |
Handle<String> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- string->IsOneByteRepresentationUnderneath() |
- ? URIUnescape::Unescape<uint8_t>(isolate, source) |
- : URIUnescape::Unescape<uc16>(isolate, source)); |
+ isolate, result, string->IsOneByteRepresentationUnderneath() |
+ ? URIUnescape::Unescape<uint8_t>(isolate, source) |
+ : URIUnescape::Unescape<uc16>(isolate, source)); |
return *result; |
} |
@@ -6374,8 +6101,8 @@ RUNTIME_FUNCTION(Runtime_BasicJSONStringify) { |
CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); |
BasicJsonStringifier stringifier(isolate); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, stringifier.Stringify(object)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ stringifier.Stringify(object)); |
return *result; |
} |
@@ -6390,16 +6117,16 @@ RUNTIME_FUNCTION(Runtime_StringParseInt) { |
subject = String::Flatten(subject); |
double value; |
- { DisallowHeapAllocation no_gc; |
+ { |
+ DisallowHeapAllocation no_gc; |
String::FlatContent flat = subject->GetFlatContent(); |
// ECMA-262 section 15.1.2.3, empty string is NaN |
if (flat.IsOneByte()) { |
- value = StringToInt( |
- isolate->unicode_cache(), flat.ToOneByteVector(), radix); |
+ value = |
+ StringToInt(isolate->unicode_cache(), flat.ToOneByteVector(), radix); |
} else { |
- value = StringToInt( |
- isolate->unicode_cache(), flat.ToUC16Vector(), radix); |
+ value = StringToInt(isolate->unicode_cache(), flat.ToUC16Vector(), radix); |
} |
} |
@@ -6431,10 +6158,7 @@ static inline bool ToUpperOverflows(uc32 character) { |
template <class Converter> |
MUST_USE_RESULT static Object* ConvertCaseHelper( |
- Isolate* isolate, |
- String* string, |
- SeqString* result, |
- int result_length, |
+ Isolate* isolate, String* string, SeqString* result, int result_length, |
unibrow::Mapping<Converter, 128>* mapping) { |
DisallowHeapAllocation no_gc; |
// We try this twice, once with the assumption that the result is no longer |
@@ -6450,8 +6174,7 @@ MUST_USE_RESULT static Object* ConvertCaseHelper( |
// Convert all characters to upper case, assuming that they will fit |
// in the buffer |
- Access<ConsStringIteratorOp> op( |
- isolate->runtime_state()->string_iterator()); |
+ Access<ConsStringIteratorOp> op(isolate->runtime_state()->string_iterator()); |
StringCharacterStream stream(string, op.value()); |
unibrow::uchar chars[Converter::kMaxWidth]; |
// We can assume that the string is not empty |
@@ -6557,11 +6280,8 @@ static inline uintptr_t AsciiRangeMask(uintptr_t w, char m, char n) { |
#ifdef DEBUG |
-static bool CheckFastAsciiConvert(char* dst, |
- const char* src, |
- int length, |
- bool changed, |
- bool is_to_lower) { |
+static bool CheckFastAsciiConvert(char* dst, const char* src, int length, |
+ bool changed, bool is_to_lower) { |
bool expected_changed = false; |
for (int i = 0; i < length; i++) { |
if (dst[i] == src[i]) continue; |
@@ -6579,14 +6299,12 @@ static bool CheckFastAsciiConvert(char* dst, |
#endif |
-template<class Converter> |
-static bool FastAsciiConvert(char* dst, |
- const char* src, |
- int length, |
+template <class Converter> |
+static bool FastAsciiConvert(char* dst, const char* src, int length, |
bool* changed_out) { |
#ifdef DEBUG |
- char* saved_dst = dst; |
- const char* saved_src = src; |
+ char* saved_dst = dst; |
+ const char* saved_src = src; |
#endif |
DisallowHeapAllocation no_gc; |
// We rely on the distance between upper and lower case letters |
@@ -6646,8 +6364,8 @@ static bool FastAsciiConvert(char* dst, |
if ((or_acc & kAsciiMask) != 0) return false; |
- DCHECK(CheckFastAsciiConvert( |
- saved_dst, saved_src, length, changed, Converter::kIsToLower)); |
+ DCHECK(CheckFastAsciiConvert(saved_dst, saved_src, length, changed, |
+ Converter::kIsToLower)); |
*changed_out = changed; |
return true; |
@@ -6658,8 +6376,7 @@ static bool FastAsciiConvert(char* dst, |
template <class Converter> |
MUST_USE_RESULT static Object* ConvertCase( |
- Handle<String> s, |
- Isolate* isolate, |
+ Handle<String> s, Isolate* isolate, |
unibrow::Mapping<Converter, 128>* mapping) { |
s = String::Flatten(s); |
int length = s->length(); |
@@ -6683,8 +6400,7 @@ MUST_USE_RESULT static Object* ConvertCase( |
bool is_ascii = FastAsciiConvert<Converter>( |
reinterpret_cast<char*>(result->GetChars()), |
reinterpret_cast<const char*>(flat_content.ToOneByteVector().start()), |
- length, |
- &has_changed_character); |
+ length, &has_changed_character); |
// If not ASCII, we discard the result and take the 2 byte path. |
if (is_ascii) return has_changed_character ? *result : *s; |
} |
@@ -6717,8 +6433,7 @@ RUNTIME_FUNCTION(Runtime_StringToLowerCase) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(String, s, 0); |
- return ConvertCase( |
- s, isolate, isolate->runtime_state()->to_lower_mapping()); |
+ return ConvertCase(s, isolate, isolate->runtime_state()->to_lower_mapping()); |
} |
@@ -6726,8 +6441,7 @@ RUNTIME_FUNCTION(Runtime_StringToUpperCase) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(String, s, 0); |
- return ConvertCase( |
- s, isolate, isolate->runtime_state()->to_upper_mapping()); |
+ return ConvertCase(s, isolate, isolate->runtime_state()->to_upper_mapping()); |
} |
@@ -6753,9 +6467,9 @@ RUNTIME_FUNCTION(Runtime_StringTrim) { |
int right = length; |
if (trimRight) { |
- while (right > left && |
- unicode_cache->IsWhiteSpaceOrLineTerminator( |
- string->Get(right - 1))) { |
+ while ( |
+ right > left && |
+ unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(right - 1))) { |
right--; |
} |
} |
@@ -6778,16 +6492,13 @@ RUNTIME_FUNCTION(Runtime_StringSplit) { |
if (limit == 0xffffffffu) { |
Handle<Object> cached_answer( |
- RegExpResultsCache::Lookup(isolate->heap(), |
- *subject, |
- *pattern, |
+ RegExpResultsCache::Lookup(isolate->heap(), *subject, *pattern, |
RegExpResultsCache::STRING_SPLIT_SUBSTRINGS), |
isolate); |
if (*cached_answer != Smi::FromInt(0)) { |
// The cache FixedArray is a COW-array and can therefore be reused. |
- Handle<JSArray> result = |
- isolate->factory()->NewJSArrayWithElements( |
- Handle<FixedArray>::cast(cached_answer)); |
+ Handle<JSArray> result = isolate->factory()->NewJSArrayWithElements( |
+ Handle<FixedArray>::cast(cached_answer)); |
return *result; |
} |
} |
@@ -6807,8 +6518,8 @@ RUNTIME_FUNCTION(Runtime_StringSplit) { |
int initial_capacity = Min<uint32_t>(kMaxInitialListCapacity, limit); |
ZoneList<int> indices(initial_capacity, zone_scope.zone()); |
- FindStringIndicesDispatch(isolate, *subject, *pattern, |
- &indices, limit, zone_scope.zone()); |
+ FindStringIndicesDispatch(isolate, *subject, *pattern, &indices, limit, |
+ zone_scope.zone()); |
if (static_cast<uint32_t>(indices.length()) < limit) { |
indices.Add(subject_length, zone_scope.zone()); |
@@ -6843,10 +6554,7 @@ RUNTIME_FUNCTION(Runtime_StringSplit) { |
if (limit == 0xffffffffu) { |
if (result->HasFastObjectElements()) { |
- RegExpResultsCache::Enter(isolate, |
- subject, |
- pattern, |
- elements, |
+ RegExpResultsCache::Enter(isolate, subject, pattern, elements, |
RegExpResultsCache::STRING_SPLIT_SUBSTRINGS); |
} |
} |
@@ -6912,8 +6620,7 @@ RUNTIME_FUNCTION(Runtime_StringToArray) { |
position = CopyCachedOneByteCharsToArray(isolate->heap(), chars.start(), |
*elements, length); |
} else { |
- MemsetPointer(elements->data_start(), |
- isolate->heap()->undefined_value(), |
+ MemsetPointer(elements->data_start(), isolate->heap()->undefined_value(), |
length); |
} |
} else { |
@@ -7121,8 +6828,7 @@ RUNTIME_FUNCTION(Runtime_StringAdd) { |
template <typename sinkchar> |
-static inline void StringBuilderConcatHelper(String* special, |
- sinkchar* sink, |
+static inline void StringBuilderConcatHelper(String* special, sinkchar* sink, |
FixedArray* fixed_array, |
int array_length) { |
DisallowHeapAllocation no_gc; |
@@ -7145,10 +6851,7 @@ static inline void StringBuilderConcatHelper(String* special, |
pos = Smi::cast(obj)->value(); |
len = -encoded_slice; |
} |
- String::WriteToFlat(special, |
- sink + position, |
- pos, |
- pos + len); |
+ String::WriteToFlat(special, sink + position, pos, pos + len); |
position += len; |
} else { |
String* string = String::cast(element); |
@@ -7164,8 +6867,7 @@ static inline void StringBuilderConcatHelper(String* special, |
// On illegal argument, -1 is returned. |
static inline int StringBuilderConcatLength(int special_length, |
FixedArray* fixed_array, |
- int array_length, |
- bool* one_byte) { |
+ int array_length, bool* one_byte) { |
DisallowHeapAllocation no_gc; |
int position = 0; |
for (int i = 0; i < array_length; i++) { |
@@ -7244,7 +6946,8 @@ RUNTIME_FUNCTION(Runtime_StringBuilderConcat) { |
int length; |
bool one_byte = special->HasOnlyOneByteChars(); |
- { DisallowHeapAllocation no_gc; |
+ { |
+ DisallowHeapAllocation no_gc; |
FixedArray* fixed_array = FixedArray::cast(array->elements()); |
if (fixed_array->length() < array_length) { |
array_length = fixed_array->length(); |
@@ -7256,8 +6959,8 @@ RUNTIME_FUNCTION(Runtime_StringBuilderConcat) { |
Object* first = fixed_array->get(0); |
if (first->IsString()) return first; |
} |
- length = StringBuilderConcatLength( |
- special_length, fixed_array, array_length, &one_byte); |
+ length = StringBuilderConcatLength(special_length, fixed_array, |
+ array_length, &one_byte); |
} |
if (length == -1) { |
@@ -7267,20 +6970,16 @@ RUNTIME_FUNCTION(Runtime_StringBuilderConcat) { |
if (one_byte) { |
Handle<SeqOneByteString> answer; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, answer, |
- isolate->factory()->NewRawOneByteString(length)); |
- StringBuilderConcatHelper(*special, |
- answer->GetChars(), |
+ isolate, answer, isolate->factory()->NewRawOneByteString(length)); |
+ StringBuilderConcatHelper(*special, answer->GetChars(), |
FixedArray::cast(array->elements()), |
array_length); |
return *answer; |
} else { |
Handle<SeqTwoByteString> answer; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, answer, |
- isolate->factory()->NewRawTwoByteString(length)); |
- StringBuilderConcatHelper(*special, |
- answer->GetChars(), |
+ isolate, answer, isolate->factory()->NewRawTwoByteString(length)); |
+ StringBuilderConcatHelper(*special, answer->GetChars(), |
FixedArray::cast(array->elements()), |
array_length); |
return *answer; |
@@ -7336,8 +7035,7 @@ RUNTIME_FUNCTION(Runtime_StringBuilderJoin) { |
Handle<SeqTwoByteString> answer; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, answer, |
- isolate->factory()->NewRawTwoByteString(length)); |
+ isolate, answer, isolate->factory()->NewRawTwoByteString(length)); |
DisallowHeapAllocation no_gc; |
@@ -7388,13 +7086,12 @@ static void JoinSparseArrayWithSeparator(FixedArray* elements, |
int string_length = string->length(); |
if (string->length() > 0) { |
while (previous_separator_position < position) { |
- String::WriteToFlat<Char>(separator, &buffer[cursor], |
- 0, separator_length); |
+ String::WriteToFlat<Char>(separator, &buffer[cursor], 0, |
+ separator_length); |
cursor += separator_length; |
previous_separator_position++; |
} |
- String::WriteToFlat<Char>(string, &buffer[cursor], |
- 0, string_length); |
+ String::WriteToFlat<Char>(string, &buffer[cursor], 0, string_length); |
cursor += string->length(); |
} |
} |
@@ -7404,8 +7101,8 @@ static void JoinSparseArrayWithSeparator(FixedArray* elements, |
DCHECK(array_length <= 0x7fffffff); // Is int32_t. |
int last_array_index = static_cast<int>(array_length - 1); |
while (previous_separator_position < last_array_index) { |
- String::WriteToFlat<Char>(separator, &buffer[cursor], |
- 0, separator_length); |
+ String::WriteToFlat<Char>(separator, &buffer[cursor], 0, |
+ separator_length); |
cursor += separator_length; |
previous_separator_position++; |
} |
@@ -7442,7 +7139,8 @@ RUNTIME_FUNCTION(Runtime_SparseJoinWithSeparator) { |
RUNTIME_ASSERT(elements->get(i + 1)->IsString()); |
} |
- { DisallowHeapAllocation no_gc; |
+ { |
+ DisallowHeapAllocation no_gc; |
for (int i = 0; i < elements_length; i += 2) { |
String* string = String::cast(elements->get(i + 1)); |
int length = string->length(); |
@@ -7484,23 +7182,21 @@ RUNTIME_FUNCTION(Runtime_SparseJoinWithSeparator) { |
} |
if (is_one_byte) { |
- Handle<SeqOneByteString> result = isolate->factory()->NewRawOneByteString( |
- string_length).ToHandleChecked(); |
+ Handle<SeqOneByteString> result = isolate->factory() |
+ ->NewRawOneByteString(string_length) |
+ .ToHandleChecked(); |
JoinSparseArrayWithSeparator<uint8_t>( |
- FixedArray::cast(elements_array->elements()), |
- elements_length, |
- array_length, |
- *separator, |
+ FixedArray::cast(elements_array->elements()), elements_length, |
+ array_length, *separator, |
Vector<uint8_t>(result->GetChars(), string_length)); |
return *result; |
} else { |
- Handle<SeqTwoByteString> result = isolate->factory()->NewRawTwoByteString( |
- string_length).ToHandleChecked(); |
+ Handle<SeqTwoByteString> result = isolate->factory() |
+ ->NewRawTwoByteString(string_length) |
+ .ToHandleChecked(); |
JoinSparseArrayWithSeparator<uc16>( |
- FixedArray::cast(elements_array->elements()), |
- elements_length, |
- array_length, |
- *separator, |
+ FixedArray::cast(elements_array->elements()), elements_length, |
+ array_length, *separator, |
Vector<uc16>(result->GetChars(), string_length)); |
return *result; |
} |
@@ -7651,10 +7347,9 @@ RUNTIME_FUNCTION(Runtime_SmiLexicographicCompare) { |
} |
static const uint32_t kPowersOf10[] = { |
- 1, 10, 100, 1000, 10*1000, 100*1000, |
- 1000*1000, 10*1000*1000, 100*1000*1000, |
- 1000*1000*1000 |
- }; |
+ 1, 10, 100, 1000, |
+ 10 * 1000, 100 * 1000, 1000 * 1000, 10 * 1000 * 1000, |
+ 100 * 1000 * 1000, 1000 * 1000 * 1000}; |
// If the integers have the same number of decimal digits they can be |
// compared directly as the numeric order is the same as the |
@@ -7715,8 +7410,10 @@ RUNTIME_FUNCTION(Runtime_StringCompare) { |
} |
int d = x->Get(0) - y->Get(0); |
- if (d < 0) return Smi::FromInt(LESS); |
- else if (d > 0) return Smi::FromInt(GREATER); |
+ if (d < 0) |
+ return Smi::FromInt(LESS); |
+ else if (d > 0) |
+ return Smi::FromInt(GREATER); |
// Slow case. |
x = String::Flatten(x); |
@@ -7763,14 +7460,14 @@ RUNTIME_FUNCTION(Runtime_StringCompare) { |
} |
-#define RUNTIME_UNARY_MATH(Name, name) \ |
-RUNTIME_FUNCTION(Runtime_Math##Name) { \ |
- HandleScope scope(isolate); \ |
- DCHECK(args.length() == 1); \ |
- isolate->counters()->math_##name()->Increment(); \ |
- CONVERT_DOUBLE_ARG_CHECKED(x, 0); \ |
- return *isolate->factory()->NewHeapNumber(std::name(x)); \ |
-} |
+#define RUNTIME_UNARY_MATH(Name, name) \ |
+ RUNTIME_FUNCTION(Runtime_Math##Name) { \ |
+ HandleScope scope(isolate); \ |
+ DCHECK(args.length() == 1); \ |
+ isolate->counters()->math_##name()->Increment(); \ |
+ CONVERT_DOUBLE_ARG_CHECKED(x, 0); \ |
+ return *isolate->factory()->NewHeapNumber(std::name(x)); \ |
+ } |
RUNTIME_UNARY_MATH(Acos, acos) |
RUNTIME_UNARY_MATH(Asin, asin) |
@@ -8000,23 +7697,22 @@ RUNTIME_FUNCTION(Runtime_DateSetValue) { |
DateCache* date_cache = isolate->date_cache(); |
- Handle<Object> value;; |
+ Handle<Object> value; |
+ ; |
bool is_value_nan = false; |
if (std::isnan(time)) { |
value = isolate->factory()->nan_value(); |
is_value_nan = true; |
- } else if (!is_utc && |
- (time < -DateCache::kMaxTimeBeforeUTCInMs || |
- time > DateCache::kMaxTimeBeforeUTCInMs)) { |
+ } else if (!is_utc && (time < -DateCache::kMaxTimeBeforeUTCInMs || |
+ time > DateCache::kMaxTimeBeforeUTCInMs)) { |
value = isolate->factory()->nan_value(); |
is_value_nan = true; |
} else { |
time = is_utc ? time : date_cache->ToUTC(static_cast<int64_t>(time)); |
- if (time < -DateCache::kMaxTimeInMs || |
- time > DateCache::kMaxTimeInMs) { |
+ if (time < -DateCache::kMaxTimeInMs || time > DateCache::kMaxTimeInMs) { |
value = isolate->factory()->nan_value(); |
is_value_nan = true; |
- } else { |
+ } else { |
value = isolate->factory()->NewNumber(DoubleToInteger(time)); |
} |
} |
@@ -8039,8 +7735,7 @@ static Handle<JSObject> NewSloppyArguments(Isolate* isolate, |
int mapped_count = Min(argument_count, parameter_count); |
Handle<FixedArray> parameter_map = |
isolate->factory()->NewFixedArray(mapped_count + 2, NOT_TENURED); |
- parameter_map->set_map( |
- isolate->heap()->sloppy_arguments_elements_map()); |
+ parameter_map->set_map(isolate->heap()->sloppy_arguments_elements_map()); |
Handle<Map> map = Map::Copy(handle(result->map())); |
map->set_elements_kind(SLOPPY_ARGUMENTS_ELEMENTS); |
@@ -8095,8 +7790,9 @@ static Handle<JSObject> NewSloppyArguments(Isolate* isolate, |
} |
DCHECK(context_index >= 0); |
arguments->set_the_hole(index); |
- parameter_map->set(index + 2, Smi::FromInt( |
- Context::MIN_CONTEXT_SLOTS + context_index)); |
+ parameter_map->set( |
+ index + 2, |
+ Smi::FromInt(Context::MIN_CONTEXT_SLOTS + context_index)); |
} |
--index; |
@@ -8197,18 +7893,17 @@ RUNTIME_FUNCTION(Runtime_NewClosure) { |
// The caller ensures that we pretenure closures that are assigned |
// directly to properties. |
PretenureFlag pretenure_flag = pretenure ? TENURED : NOT_TENURED; |
- return *isolate->factory()->NewFunctionFromSharedFunctionInfo( |
- shared, context, pretenure_flag); |
+ return *isolate->factory()->NewFunctionFromSharedFunctionInfo(shared, context, |
+ pretenure_flag); |
} |
// Find the arguments of the JavaScript function invocation that called |
// into C++ code. Collect these in a newly allocated array of handles (possibly |
// prefixed by a number of empty handles). |
-static SmartArrayPointer<Handle<Object> > GetCallerArguments( |
- Isolate* isolate, |
- int prefix_argc, |
- int* total_argc) { |
+static SmartArrayPointer<Handle<Object> > GetCallerArguments(Isolate* isolate, |
+ int prefix_argc, |
+ int* total_argc) { |
// Find frame containing arguments passed to the caller. |
JavaScriptFrameIterator it(isolate); |
JavaScriptFrame* frame = it.frame(); |
@@ -8218,8 +7913,7 @@ static SmartArrayPointer<Handle<Object> > GetCallerArguments( |
int inlined_jsframe_index = functions.length() - 1; |
JSFunction* inlined_function = functions[inlined_jsframe_index]; |
SlotRefValueBuilder slot_refs( |
- frame, |
- inlined_jsframe_index, |
+ frame, inlined_jsframe_index, |
inlined_function->shared()->formal_parameter_count()); |
int args_count = slot_refs.args_length(); |
@@ -8314,9 +8008,8 @@ RUNTIME_FUNCTION(Runtime_FunctionBindArguments) { |
PropertyAttributes attr = |
static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY); |
RETURN_FAILURE_ON_EXCEPTION( |
- isolate, |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- bound_function, length_string, new_length, attr)); |
+ isolate, JSObject::SetOwnPropertyIgnoreAttributes( |
+ bound_function, length_string, new_length, attr)); |
return *bound_function; |
} |
@@ -8359,8 +8052,8 @@ RUNTIME_FUNCTION(Runtime_NewObjectFromBound) { |
SmartArrayPointer<Handle<Object> > param_data = |
GetCallerArguments(isolate, bound_argc, &total_argc); |
for (int i = 0; i < bound_argc; i++) { |
- param_data[i] = Handle<Object>(bound_args->get( |
- JSFunction::kBoundArgumentsStartIndex + i), isolate); |
+ param_data[i] = Handle<Object>( |
+ bound_args->get(JSFunction::kBoundArgumentsStartIndex + i), isolate); |
} |
if (!bound_function->IsJSFunction()) { |
@@ -8372,19 +8065,18 @@ RUNTIME_FUNCTION(Runtime_NewObjectFromBound) { |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Execution::New(Handle<JSFunction>::cast(bound_function), |
- total_argc, param_data.get())); |
+ isolate, result, Execution::New(Handle<JSFunction>::cast(bound_function), |
+ total_argc, param_data.get())); |
return *result; |
} |
static Object* Runtime_NewObjectHelper(Isolate* isolate, |
- Handle<Object> constructor, |
- Handle<AllocationSite> site) { |
+ Handle<Object> constructor, |
+ Handle<AllocationSite> site) { |
// If the constructor isn't a proper function we throw a type error. |
if (!constructor->IsJSFunction()) { |
- Vector< Handle<Object> > arguments = HandleVector(&constructor, 1); |
+ Vector<Handle<Object> > arguments = HandleVector(&constructor, 1); |
THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
NewTypeError("not_constructor", arguments)); |
} |
@@ -8394,7 +8086,7 @@ static Object* Runtime_NewObjectHelper(Isolate* isolate, |
// If function should not have prototype, construction is not allowed. In this |
// case generated code bailouts here, since function has no initial_map. |
if (!function->should_have_prototype() && !function->shared()->bound()) { |
- Vector< Handle<Object> > arguments = HandleVector(&constructor, 1); |
+ Vector<Handle<Object> > arguments = HandleVector(&constructor, 1); |
THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
NewTypeError("not_constructor", arguments)); |
} |
@@ -8444,8 +8136,7 @@ RUNTIME_FUNCTION(Runtime_NewObject) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 1); |
CONVERT_ARG_HANDLE_CHECKED(Object, constructor, 0); |
- return Runtime_NewObjectHelper(isolate, |
- constructor, |
+ return Runtime_NewObjectHelper(isolate, constructor, |
Handle<AllocationSite>::null()); |
} |
@@ -8516,8 +8207,8 @@ RUNTIME_FUNCTION(Runtime_CompileOptimized) { |
PrintF("[failed to optimize "); |
function->PrintName(); |
PrintF(": is code optimizable: %s, is debugger enabled: %s]\n", |
- function->shared()->optimization_disabled() ? "F" : "T", |
- isolate->DebuggerHasBreakPoints() ? "T" : "F"); |
+ function->shared()->optimization_disabled() ? "F" : "T", |
+ isolate->DebuggerHasBreakPoints() ? "T" : "F"); |
} |
function->ReplaceCode(*unoptimized); |
return function->code(); |
@@ -8545,8 +8236,7 @@ class ActivationsFinder : public ThreadVisitor { |
bool has_code_activations_; |
explicit ActivationsFinder(Code* code) |
- : code_(code), |
- has_code_activations_(false) { } |
+ : code_(code), has_code_activations_(false) {} |
void VisitThread(Isolate* isolate, ThreadLocalTop* top) { |
JavaScriptFrameIterator it(isolate, top); |
@@ -8697,8 +8387,7 @@ RUNTIME_FUNCTION(Runtime_OptimizeFunctionOnNextCall) { |
function->MarkForOptimization(); |
Code* unoptimized = function->shared()->code(); |
- if (args.length() == 2 && |
- unoptimized->kind() == Code::FUNCTION) { |
+ if (args.length() == 2 && unoptimized->kind() == Code::FUNCTION) { |
CONVERT_ARG_HANDLE_CHECKED(String, type, 1); |
if (type->IsOneByteEqualTo(STATIC_CHAR_VECTOR("osr")) && FLAG_use_osr) { |
// Start patching from the currently patched loop nesting level. |
@@ -8819,8 +8508,8 @@ RUNTIME_FUNCTION(Runtime_CompileForOnStackReplacement) { |
caller_code = Handle<Code>(frame->LookupCode()); |
} |
- uint32_t pc_offset = static_cast<uint32_t>( |
- frame->pc() - caller_code->instruction_start()); |
+ uint32_t pc_offset = |
+ static_cast<uint32_t>(frame->pc() - caller_code->instruction_start()); |
#ifdef DEBUG |
DCHECK_EQ(frame->function(), *function); |
@@ -8834,8 +8523,9 @@ RUNTIME_FUNCTION(Runtime_CompileForOnStackReplacement) { |
Compiler::ConcurrencyMode mode = |
isolate->concurrent_osr_enabled() && |
- (function->shared()->ast_node_count() > 512) ? Compiler::CONCURRENT |
- : Compiler::NOT_CONCURRENT; |
+ (function->shared()->ast_node_count() > 512) |
+ ? Compiler::CONCURRENT |
+ : Compiler::NOT_CONCURRENT; |
Handle<Code> result = Handle<Code>::null(); |
OptimizedCompileJob* job = NULL; |
@@ -8869,8 +8559,8 @@ RUNTIME_FUNCTION(Runtime_CompileForOnStackReplacement) { |
function->PrintName(); |
PrintF(" at AST id %d]\n", ast_id.ToInt()); |
} |
- MaybeHandle<Code> maybe_result = Compiler::GetOptimizedCode( |
- function, caller_code, mode, ast_id); |
+ MaybeHandle<Code> maybe_result = |
+ Compiler::GetOptimizedCode(function, caller_code, mode, ast_id); |
if (maybe_result.ToHandle(&result) && |
result.is_identical_to(isolate->builtins()->InOptimizationQueue())) { |
// Optimization is queued. Return to check later. |
@@ -8973,7 +8663,7 @@ RUNTIME_FUNCTION(Runtime_Call) { |
} |
for (int i = 0; i < argc; ++i) { |
- argv[i] = Handle<Object>(args[1 + i], isolate); |
+ argv[i] = Handle<Object>(args[1 + i], isolate); |
} |
Handle<JSReceiver> hfun(fun); |
@@ -9013,8 +8703,7 @@ RUNTIME_FUNCTION(Runtime_Apply) { |
for (int i = 0; i < argc; ++i) { |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, argv[i], |
- Object::GetElement(isolate, arguments, offset + i)); |
+ isolate, argv[i], Object::GetElement(isolate, arguments, offset + i)); |
} |
Handle<Object> result; |
@@ -9099,8 +8788,8 @@ RUNTIME_FUNCTION(Runtime_PushWithContext) { |
} |
Handle<Context> current(isolate->context()); |
- Handle<Context> context = isolate->factory()->NewWithContext( |
- function, current, extension_object); |
+ Handle<Context> context = |
+ isolate->factory()->NewWithContext(function, current, extension_object); |
isolate->set_context(*context); |
return *context; |
} |
@@ -9142,8 +8831,8 @@ RUNTIME_FUNCTION(Runtime_PushBlockContext) { |
function = args.at<JSFunction>(1); |
} |
Handle<Context> current(isolate->context()); |
- Handle<Context> context = isolate->factory()->NewBlockContext( |
- function, current, scope_info); |
+ Handle<Context> context = |
+ isolate->factory()->NewBlockContext(function, current, scope_info); |
isolate->set_context(*context); |
return *context; |
} |
@@ -9258,11 +8947,8 @@ RUNTIME_FUNCTION(Runtime_DeleteLookupSlot) { |
PropertyAttributes attributes; |
ContextLookupFlags flags = FOLLOW_CHAINS; |
BindingFlags binding_flags; |
- Handle<Object> holder = context->Lookup(name, |
- flags, |
- &index, |
- &attributes, |
- &binding_flags); |
+ Handle<Object> holder = |
+ context->Lookup(name, flags, &index, &attributes, &binding_flags); |
// If the slot was not found the result is true. |
if (holder.is_null()) { |
@@ -9279,69 +8965,13 @@ RUNTIME_FUNCTION(Runtime_DeleteLookupSlot) { |
// (respecting DONT_DELETE). |
Handle<JSObject> object = Handle<JSObject>::cast(holder); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- JSReceiver::DeleteProperty(object, name)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ JSReceiver::DeleteProperty(object, name)); |
return *result; |
} |
-// A mechanism to return a pair of Object pointers in registers (if possible). |
-// How this is achieved is calling convention-dependent. |
-// All currently supported x86 compiles uses calling conventions that are cdecl |
-// variants where a 64-bit value is returned in two 32-bit registers |
-// (edx:eax on ia32, r1:r0 on ARM). |
-// In AMD-64 calling convention a struct of two pointers is returned in rdx:rax. |
-// In Win64 calling convention, a struct of two pointers is returned in memory, |
-// allocated by the caller, and passed as a pointer in a hidden first parameter. |
-#ifdef V8_HOST_ARCH_64_BIT |
-struct ObjectPair { |
- Object* x; |
- Object* y; |
-}; |
- |
- |
-static inline ObjectPair MakePair(Object* x, Object* y) { |
- ObjectPair result = {x, y}; |
- // Pointers x and y returned in rax and rdx, in AMD-x64-abi. |
- // In Win64 they are assigned to a hidden first argument. |
- return result; |
-} |
-#elif V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT |
-// For x32 a 128-bit struct return is done as rax and rdx from the ObjectPair |
-// are used in the full codegen and Crankshaft compiler. An alternative is |
-// using uint64_t and modifying full codegen and Crankshaft compiler. |
-struct ObjectPair { |
- Object* x; |
- uint32_t x_upper; |
- Object* y; |
- uint32_t y_upper; |
-}; |
- |
- |
-static inline ObjectPair MakePair(Object* x, Object* y) { |
- ObjectPair result = {x, 0, y, 0}; |
- // Pointers x and y returned in rax and rdx, in x32-abi. |
- return result; |
-} |
-#else |
-typedef uint64_t ObjectPair; |
-static inline ObjectPair MakePair(Object* x, Object* y) { |
-#if defined(V8_TARGET_LITTLE_ENDIAN) |
- return reinterpret_cast<uint32_t>(x) | |
- (reinterpret_cast<ObjectPair>(y) << 32); |
-#elif defined(V8_TARGET_BIG_ENDIAN) |
- return reinterpret_cast<uint32_t>(y) | |
- (reinterpret_cast<ObjectPair>(x) << 32); |
-#else |
-#error Unknown endianness |
-#endif |
-} |
-#endif |
- |
- |
-static Object* ComputeReceiverForNonGlobal(Isolate* isolate, |
- JSObject* holder) { |
+static Object* ComputeReceiverForNonGlobal(Isolate* isolate, JSObject* holder) { |
DCHECK(!holder->IsGlobalObject()); |
Context* top = isolate->context(); |
// Get the context extension function. |
@@ -9375,11 +9005,8 @@ static ObjectPair LoadLookupSlotHelper(Arguments args, Isolate* isolate, |
PropertyAttributes attributes; |
ContextLookupFlags flags = FOLLOW_CHAINS; |
BindingFlags binding_flags; |
- Handle<Object> holder = context->Lookup(name, |
- flags, |
- &index, |
- &attributes, |
- &binding_flags); |
+ Handle<Object> holder = |
+ context->Lookup(name, flags, &index, &attributes, &binding_flags); |
if (isolate->has_pending_exception()) { |
return MakePair(isolate->heap()->exception(), NULL); |
} |
@@ -9403,7 +9030,7 @@ static ObjectPair LoadLookupSlotHelper(Arguments args, Isolate* isolate, |
if (maybe_error.ToHandle(&error)) isolate->Throw(*error); |
return MakePair(isolate->heap()->exception(), NULL); |
} |
- // FALLTHROUGH |
+ // FALLTHROUGH |
case MUTABLE_IS_INITIALIZED: |
case IMMUTABLE_IS_INITIALIZED: |
case IMMUTABLE_IS_INITIALIZED_HARMONY: |
@@ -9438,15 +9065,15 @@ static ObjectPair LoadLookupSlotHelper(Arguments args, Isolate* isolate, |
object->IsGlobalObject() |
? Object::cast(isolate->heap()->undefined_value()) |
: object->IsJSProxy() ? static_cast<Object*>(*object) |
- : ComputeReceiverForNonGlobal(isolate, JSObject::cast(*object)), |
+ : ComputeReceiverForNonGlobal( |
+ isolate, JSObject::cast(*object)), |
isolate); |
// No need to unhole the value here. This is taken care of by the |
// GetProperty function. |
Handle<Object> value; |
ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
- isolate, value, |
- Object::GetProperty(object, name), |
+ isolate, value, Object::GetProperty(object, name), |
MakePair(isolate->heap()->exception(), NULL)); |
return MakePair(*value, *receiver_handle); |
} |
@@ -9489,11 +9116,8 @@ RUNTIME_FUNCTION(Runtime_StoreLookupSlot) { |
PropertyAttributes attributes; |
ContextLookupFlags flags = FOLLOW_CHAINS; |
BindingFlags binding_flags; |
- Handle<Object> holder = context->Lookup(name, |
- flags, |
- &index, |
- &attributes, |
- &binding_flags); |
+ Handle<Object> holder = |
+ context->Lookup(name, flags, &index, &attributes, &binding_flags); |
// In case of JSProxy, an exception might have been thrown. |
if (isolate->has_pending_exception()) return isolate->heap()->exception(); |
@@ -9638,7 +9262,8 @@ static int StackSize(Isolate* isolate) { |
static void PrintTransition(Isolate* isolate, Object* result) { |
// indentation |
- { const int nmax = 80; |
+ { |
+ const int nmax = 80; |
int n = StackSize(isolate); |
if (n <= nmax) |
PrintF("%4d:%*s", n, n, ""); |
@@ -9752,13 +9377,11 @@ RUNTIME_FUNCTION(Runtime_DateParseString) { |
bool result; |
String::FlatContent str_content = str->GetFlatContent(); |
if (str_content.IsOneByte()) { |
- result = DateParser::Parse(str_content.ToOneByteVector(), |
- *output_array, |
+ result = DateParser::Parse(str_content.ToOneByteVector(), *output_array, |
isolate->unicode_cache()); |
} else { |
DCHECK(str_content.IsTwoByte()); |
- result = DateParser::Parse(str_content.ToUC16Vector(), |
- *output_array, |
+ result = DateParser::Parse(str_content.ToUC16Vector(), *output_array, |
isolate->unicode_cache()); |
} |
@@ -9779,8 +9402,8 @@ RUNTIME_FUNCTION(Runtime_DateLocalTimezone) { |
x <= DateCache::kMaxTimeBeforeUTCInMs); |
const char* zone = |
isolate->date_cache()->LocalTimezone(static_cast<int64_t>(x)); |
- Handle<String> result = isolate->factory()->NewStringFromUtf8( |
- CStrVector(zone)).ToHandleChecked(); |
+ Handle<String> result = |
+ isolate->factory()->NewStringFromUtf8(CStrVector(zone)).ToHandleChecked(); |
return *result; |
} |
@@ -9846,10 +9469,10 @@ RUNTIME_FUNCTION(Runtime_ParseJson) { |
source = String::Flatten(source); |
// Optimized fast case where we only have Latin1 characters. |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- source->IsSeqOneByteString() ? JsonParser<true>::Parse(source) |
- : JsonParser<false>::Parse(source)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ source->IsSeqOneByteString() |
+ ? JsonParser<true>::Parse(source) |
+ : JsonParser<false>::Parse(source)); |
return *result; |
} |
@@ -9893,18 +9516,18 @@ RUNTIME_FUNCTION(Runtime_CompileString) { |
// Compile source string in the native context. |
ParseRestriction restriction = function_literal_only |
- ? ONLY_SINGLE_FUNCTION_LITERAL : NO_PARSE_RESTRICTION; |
+ ? ONLY_SINGLE_FUNCTION_LITERAL |
+ : NO_PARSE_RESTRICTION; |
Handle<JSFunction> fun; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, fun, |
- Compiler::GetFunctionFromEval( |
- source, context, SLOPPY, restriction, RelocInfo::kNoPosition)); |
+ Compiler::GetFunctionFromEval(source, context, SLOPPY, restriction, |
+ RelocInfo::kNoPosition)); |
return *fun; |
} |
-static ObjectPair CompileGlobalEval(Isolate* isolate, |
- Handle<String> source, |
+static ObjectPair CompileGlobalEval(Isolate* isolate, Handle<String> source, |
Handle<Object> receiver, |
StrictMode strict_mode, |
int scope_position) { |
@@ -9930,8 +9553,8 @@ static ObjectPair CompileGlobalEval(Isolate* isolate, |
Handle<JSFunction> compiled; |
ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
isolate, compiled, |
- Compiler::GetFunctionFromEval( |
- source, context, strict_mode, restriction, scope_position), |
+ Compiler::GetFunctionFromEval(source, context, strict_mode, restriction, |
+ scope_position), |
MakePair(isolate->heap()->exception(), NULL)); |
return MakePair(*compiled, *receiver); |
} |
@@ -9957,11 +9580,8 @@ RUNTIME_FUNCTION_RETURN_PAIR(Runtime_ResolvePossiblyDirectEval) { |
DCHECK(args.smi_at(3) == SLOPPY || args.smi_at(3) == STRICT); |
StrictMode strict_mode = static_cast<StrictMode>(args.smi_at(3)); |
DCHECK(args[4]->IsSmi()); |
- return CompileGlobalEval(isolate, |
- args.at<String>(1), |
- args.at<Object>(2), |
- strict_mode, |
- args.smi_at(4)); |
+ return CompileGlobalEval(isolate, args.at<String>(1), args.at<Object>(2), |
+ strict_mode, args.smi_at(4)); |
} |
@@ -10007,8 +9627,7 @@ RUNTIME_FUNCTION(Runtime_PushIfAbsent) { |
// Strict not needed. Used for cycle detection in Array join implementation. |
RETURN_FAILURE_ON_EXCEPTION( |
- isolate, |
- JSObject::SetFastElement(array, length, element, SLOPPY, true)); |
+ isolate, JSObject::SetFastElement(array, length, element, SLOPPY, true)); |
return isolate->heap()->true_value(); |
} |
@@ -10026,19 +9645,16 @@ RUNTIME_FUNCTION(Runtime_PushIfAbsent) { |
*/ |
class ArrayConcatVisitor { |
public: |
- ArrayConcatVisitor(Isolate* isolate, |
- Handle<FixedArray> storage, |
- bool fast_elements) : |
- isolate_(isolate), |
- storage_(Handle<FixedArray>::cast( |
- isolate->global_handles()->Create(*storage))), |
- index_offset_(0u), |
- fast_elements_(fast_elements), |
- exceeds_array_limit_(false) { } |
- |
- ~ArrayConcatVisitor() { |
- clear_storage(); |
- } |
+ ArrayConcatVisitor(Isolate* isolate, Handle<FixedArray> storage, |
+ bool fast_elements) |
+ : isolate_(isolate), |
+ storage_(Handle<FixedArray>::cast( |
+ isolate->global_handles()->Create(*storage))), |
+ index_offset_(0u), |
+ fast_elements_(fast_elements), |
+ exceeds_array_limit_(false) {} |
+ |
+ ~ArrayConcatVisitor() { clear_storage(); } |
void visit(uint32_t i, Handle<Object> elm) { |
if (i > JSObject::kMaxElementCount - index_offset_) { |
@@ -10087,17 +9703,14 @@ class ArrayConcatVisitor { |
} |
} |
- bool exceeds_array_limit() { |
- return exceeds_array_limit_; |
- } |
+ bool exceeds_array_limit() { return exceeds_array_limit_; } |
Handle<JSArray> ToArray() { |
Handle<JSArray> array = isolate_->factory()->NewJSArray(0); |
Handle<Object> length = |
isolate_->factory()->NewNumber(static_cast<double>(index_offset_)); |
Handle<Map> map = JSObject::GetElementsTransitionMap( |
- array, |
- fast_elements_ ? FAST_HOLEY_ELEMENTS : DICTIONARY_ELEMENTS); |
+ array, fast_elements_ ? FAST_HOLEY_ELEMENTS : DICTIONARY_ELEMENTS); |
array->set_map(*map); |
array->set_length(*length); |
array->set_elements(*storage_); |
@@ -10133,8 +9746,8 @@ class ArrayConcatVisitor { |
} |
inline void set_storage(FixedArray* storage) { |
- storage_ = Handle<FixedArray>::cast( |
- isolate_->global_handles()->Create(storage)); |
+ storage_ = |
+ Handle<FixedArray>::cast(isolate_->global_handles()->Create(storage)); |
} |
Isolate* isolate_; |
@@ -10195,11 +9808,11 @@ static uint32_t EstimateElementCount(Handle<JSArray> array) { |
break; |
} |
case SLOPPY_ARGUMENTS_ELEMENTS: |
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
- case EXTERNAL_##TYPE##_ELEMENTS: \ |
- case TYPE##_ELEMENTS: \ |
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
+ case EXTERNAL_##TYPE##_ELEMENTS: \ |
+ case TYPE##_ELEMENTS: |
- TYPED_ARRAYS(TYPED_ARRAY_CASE) |
+ TYPED_ARRAYS(TYPED_ARRAY_CASE) |
#undef TYPED_ARRAY_CASE |
// External arrays are always dense. |
return length; |
@@ -10210,8 +9823,7 @@ static uint32_t EstimateElementCount(Handle<JSArray> array) { |
} |
- |
-template<class ExternalArrayClass, class ElementType> |
+template <class ExternalArrayClass, class ElementType> |
static void IterateExternalArrayElements(Isolate* isolate, |
Handle<JSObject> receiver, |
bool elements_are_ints, |
@@ -10262,8 +9874,7 @@ static int compareUInt32(const uint32_t* ap, const uint32_t* bp) { |
} |
-static void CollectElementIndices(Handle<JSObject> object, |
- uint32_t range, |
+static void CollectElementIndices(Handle<JSObject> object, uint32_t range, |
List<uint32_t>* indices) { |
Isolate* isolate = object->GetIsolate(); |
ElementsKind kind = object->GetElementsKind(); |
@@ -10317,26 +9928,26 @@ static void CollectElementIndices(Handle<JSObject> object, |
break; |
} |
#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
- case TYPE##_ELEMENTS: \ |
- case EXTERNAL_##TYPE##_ELEMENTS: |
+ case TYPE##_ELEMENTS: \ |
+ case EXTERNAL_##TYPE##_ELEMENTS: |
TYPED_ARRAYS(TYPED_ARRAY_CASE) |
#undef TYPED_ARRAY_CASE |
- { |
- uint32_t length = static_cast<uint32_t>( |
- FixedArrayBase::cast(object->elements())->length()); |
- if (range <= length) { |
- length = range; |
- // We will add all indices, so we might as well clear it first |
- // and avoid duplicates. |
- indices->Clear(); |
- } |
- for (uint32_t i = 0; i < length; i++) { |
- indices->Add(i); |
+ { |
+ uint32_t length = static_cast<uint32_t>( |
+ FixedArrayBase::cast(object->elements())->length()); |
+ if (range <= length) { |
+ length = range; |
+ // We will add all indices, so we might as well clear it first |
+ // and avoid duplicates. |
+ indices->Clear(); |
+ } |
+ for (uint32_t i = 0; i < length; i++) { |
+ indices->Add(i); |
+ } |
+ if (length == range) return; // All indices accounted for already. |
+ break; |
} |
- if (length == range) return; // All indices accounted for already. |
- break; |
- } |
case SLOPPY_ARGUMENTS_ELEMENTS: { |
MaybeHandle<Object> length_obj = |
Object::GetProperty(object, isolate->factory()->length_string()); |
@@ -10373,8 +9984,7 @@ static void CollectElementIndices(Handle<JSObject> object, |
* length. |
* Returns false if any access threw an exception, otherwise true. |
*/ |
-static bool IterateElements(Isolate* isolate, |
- Handle<JSArray> receiver, |
+static bool IterateElements(Isolate* isolate, Handle<JSArray> receiver, |
ArrayConcatVisitor* visitor) { |
uint32_t length = static_cast<uint32_t>(receiver->length()->Number()); |
switch (receiver->GetElementsKind()) { |
@@ -10458,8 +10068,7 @@ static bool IterateElements(Isolate* isolate, |
uint32_t index = indices[j]; |
Handle<Object> element; |
ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
- isolate, element, |
- Object::GetElement(isolate, receiver, index), |
+ isolate, element, Object::GetElement(isolate, receiver, index), |
false); |
visitor->visit(index, element); |
// Skip to next different index (i.e., omit duplicates). |
@@ -10470,8 +10079,8 @@ static bool IterateElements(Isolate* isolate, |
break; |
} |
case EXTERNAL_UINT8_CLAMPED_ELEMENTS: { |
- Handle<ExternalUint8ClampedArray> pixels(ExternalUint8ClampedArray::cast( |
- receiver->elements())); |
+ Handle<ExternalUint8ClampedArray> pixels( |
+ ExternalUint8ClampedArray::cast(receiver->elements())); |
for (uint32_t j = 0; j < length; j++) { |
Handle<Smi> e(Smi::FromInt(pixels->get_scalar(j)), isolate); |
visitor->visit(j, e); |
@@ -10581,14 +10190,12 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { |
element_estimate = 1; |
} |
// Avoid overflows by capping at kMaxElementCount. |
- if (JSObject::kMaxElementCount - estimate_result_length < |
- length_estimate) { |
+ if (JSObject::kMaxElementCount - estimate_result_length < length_estimate) { |
estimate_result_length = JSObject::kMaxElementCount; |
} else { |
estimate_result_length += length_estimate; |
} |
- if (JSObject::kMaxElementCount - estimate_nof_elements < |
- element_estimate) { |
+ if (JSObject::kMaxElementCount - estimate_nof_elements < element_estimate) { |
estimate_nof_elements = JSObject::kMaxElementCount; |
} else { |
estimate_nof_elements += element_estimate; |
@@ -10644,8 +10251,7 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { |
} |
case FAST_HOLEY_SMI_ELEMENTS: |
case FAST_SMI_ELEMENTS: { |
- FixedArray* elements( |
- FixedArray::cast(array->elements())); |
+ FixedArray* elements(FixedArray::cast(array->elements())); |
for (uint32_t i = 0; i < length; i++) { |
Object* element = elements->get(i); |
if (element->IsTheHole()) { |
@@ -10686,12 +10292,12 @@ RUNTIME_FUNCTION(Runtime_ArrayConcat) { |
if (fast_case) { |
// The backing storage array must have non-existing elements to preserve |
// holes across concat operations. |
- storage = isolate->factory()->NewFixedArrayWithHoles( |
- estimate_result_length); |
+ storage = |
+ isolate->factory()->NewFixedArrayWithHoles(estimate_result_length); |
} else { |
// TODO(126): move 25% pre-allocation logic into Dictionary::Allocate |
- uint32_t at_least_space_for = estimate_nof_elements + |
- (estimate_nof_elements >> 2); |
+ uint32_t at_least_space_for = |
+ estimate_nof_elements + (estimate_nof_elements >> 2); |
storage = Handle<FixedArray>::cast( |
SeededNumberDictionary::New(isolate, at_least_space_for)); |
} |
@@ -10903,8 +10509,7 @@ static StackFrame::Id UnwrapFrameId(int wrapped) { |
RUNTIME_FUNCTION(Runtime_SetDebugEventListener) { |
SealHandleScope shs(isolate); |
DCHECK(args.length() == 2); |
- RUNTIME_ASSERT(args[0]->IsJSFunction() || |
- args[0]->IsUndefined() || |
+ RUNTIME_ASSERT(args[0]->IsJSFunction() || args[0]->IsUndefined() || |
args[0]->IsNull()); |
CONVERT_ARG_HANDLE_CHECKED(Object, callback, 0); |
CONVERT_ARG_HANDLE_CHECKED(Object, data, 1); |
@@ -10997,8 +10602,8 @@ RUNTIME_FUNCTION(Runtime_DebugGetPropertyDetails) { |
isolate, element_or_char, |
Runtime::GetElementOrCharAt(isolate, obj, index)); |
details->set(0, *element_or_char); |
- details->set( |
- 1, PropertyDetails(NONE, NORMAL, Representation::None()).AsSmi()); |
+ details->set(1, |
+ PropertyDetails(NONE, NORMAL, Representation::None()).AsSmi()); |
return *isolate->factory()->NewJSArrayWithElements(details); |
} |
@@ -11091,8 +10696,8 @@ RUNTIME_FUNCTION(Runtime_DebugNamedInterceptorPropertyValue) { |
CONVERT_ARG_HANDLE_CHECKED(Name, name, 1); |
Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, JSObject::GetProperty(obj, name)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ JSObject::GetProperty(obj, name)); |
return *result; |
} |
@@ -11157,8 +10762,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameCount) { |
class FrameInspector { |
public: |
- FrameInspector(JavaScriptFrame* frame, |
- int inlined_jsframe_index, |
+ FrameInspector(JavaScriptFrame* frame, int inlined_jsframe_index, |
Isolate* isolate) |
: frame_(frame), deoptimized_frame_(NULL), isolate_(isolate) { |
// Calculate the deoptimized frame. |
@@ -11174,41 +10778,35 @@ class FrameInspector { |
~FrameInspector() { |
// Get rid of the calculated deoptimized frame if any. |
if (deoptimized_frame_ != NULL) { |
- Deoptimizer::DeleteDebuggerInspectableFrame(deoptimized_frame_, |
- isolate_); |
+ Deoptimizer::DeleteDebuggerInspectableFrame(deoptimized_frame_, isolate_); |
} |
} |
int GetParametersCount() { |
- return is_optimized_ |
- ? deoptimized_frame_->parameters_count() |
- : frame_->ComputeParametersCount(); |
+ return is_optimized_ ? deoptimized_frame_->parameters_count() |
+ : frame_->ComputeParametersCount(); |
} |
int expression_count() { return deoptimized_frame_->expression_count(); } |
Object* GetFunction() { |
- return is_optimized_ |
- ? deoptimized_frame_->GetFunction() |
- : frame_->function(); |
+ return is_optimized_ ? deoptimized_frame_->GetFunction() |
+ : frame_->function(); |
} |
Object* GetParameter(int index) { |
- return is_optimized_ |
- ? deoptimized_frame_->GetParameter(index) |
- : frame_->GetParameter(index); |
+ return is_optimized_ ? deoptimized_frame_->GetParameter(index) |
+ : frame_->GetParameter(index); |
} |
Object* GetExpression(int index) { |
- return is_optimized_ |
- ? deoptimized_frame_->GetExpression(index) |
- : frame_->GetExpression(index); |
+ return is_optimized_ ? deoptimized_frame_->GetExpression(index) |
+ : frame_->GetExpression(index); |
} |
int GetSourcePosition() { |
- return is_optimized_ |
- ? deoptimized_frame_->GetSourcePosition() |
- : frame_->LookupCode()->SourcePosition(frame_->pc()); |
+ return is_optimized_ ? deoptimized_frame_->GetSourcePosition() |
+ : frame_->LookupCode()->SourcePosition(frame_->pc()); |
} |
bool IsConstructor() { |
return is_optimized_ && !is_bottommost_ |
- ? deoptimized_frame_->HasConstructStub() |
- : frame_->IsConstructor(); |
+ ? deoptimized_frame_->HasConstructStub() |
+ : frame_->IsConstructor(); |
} |
Object* GetContext() { |
return is_optimized_ ? deoptimized_frame_->GetContext() : frame_->context(); |
@@ -11340,8 +10938,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
for (int slot = 0; slot < scope_info->LocalCount(); ++slot) { |
// Hide compiler-introduced temporary variables, whether on the stack or on |
// the context. |
- if (scope_info->LocalIsSynthetic(slot)) |
- local_count--; |
+ if (scope_info->LocalIsSynthetic(slot)) local_count--; |
} |
Handle<FixedArray> locals = |
@@ -11352,8 +10949,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
int i = 0; |
for (; i < scope_info->StackLocalCount(); ++i) { |
// Use the value from the stack. |
- if (scope_info->LocalIsSynthetic(i)) |
- continue; |
+ if (scope_info->LocalIsSynthetic(i)) continue; |
locals->set(local * 2, scope_info->LocalName(i)); |
locals->set(local * 2 + 1, frame_inspector.GetExpression(i)); |
local++; |
@@ -11363,8 +10959,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
Handle<Context> context( |
Context::cast(frame_inspector.GetContext())->declaration_context()); |
for (; i < scope_info->LocalCount(); ++i) { |
- if (scope_info->LocalIsSynthetic(i)) |
- continue; |
+ if (scope_info->LocalIsSynthetic(i)) continue; |
Handle<String> name(scope_info->LocalName(i)); |
VariableMode mode; |
InitializationFlag init_flag; |
@@ -11403,8 +10998,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
// entering the debug break exit frame. |
if (internal_frame_sp != NULL) { |
return_value = |
- Handle<Object>(Memory::Object_at(internal_frame_sp), |
- isolate); |
+ Handle<Object>(Memory::Object_at(internal_frame_sp), isolate); |
break; |
} |
} |
@@ -11435,8 +11029,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
// Calculate the size of the result. |
int details_size = kFrameDetailsFirstDynamicIndex + |
- 2 * (argument_count + local_count) + |
- (at_return ? 1 : 0); |
+ 2 * (argument_count + local_count) + (at_return ? 1 : 0); |
Handle<FixedArray> details = isolate->factory()->NewFixedArray(details_size); |
// Add the frame id. |
@@ -11449,8 +11042,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
details->set(kFrameDetailsArgumentCountIndex, Smi::FromInt(argument_count)); |
// Add the locals count |
- details->set(kFrameDetailsLocalCountIndex, |
- Smi::FromInt(local_count)); |
+ details->set(kFrameDetailsLocalCountIndex, Smi::FromInt(local_count)); |
// Add the source position. |
if (position != RelocInfo::kNoPosition) { |
@@ -11514,8 +11106,7 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
// THIS MUST BE DONE LAST SINCE WE MIGHT ADVANCE |
// THE FRAME ITERATOR TO WRAP THE RECEIVER. |
Handle<Object> receiver(it.frame()->receiver(), isolate); |
- if (!receiver->IsJSObject() && |
- shared->strict_mode() == SLOPPY && |
+ if (!receiver->IsJSObject() && shared->strict_mode() == SLOPPY && |
!function->IsBuiltin()) { |
// If the receiver is not a JSObject and the function is not a |
// builtin or strict-mode we have hit an optimization where a |
@@ -11557,9 +11148,7 @@ static bool ParameterIsShadowedByContextLocal(Handle<ScopeInfo> info, |
// frame. |
MUST_USE_RESULT |
static MaybeHandle<JSObject> MaterializeStackLocalsWithFrameInspector( |
- Isolate* isolate, |
- Handle<JSObject> target, |
- Handle<JSFunction> function, |
+ Isolate* isolate, Handle<JSObject> target, Handle<JSFunction> function, |
FrameInspector* frame_inspector) { |
Handle<SharedFunctionInfo> shared(function->shared()); |
Handle<ScopeInfo> scope_info(shared->scope_info()); |
@@ -11577,10 +11166,9 @@ static MaybeHandle<JSObject> MaterializeStackLocalsWithFrameInspector( |
isolate); |
DCHECK(!value->IsTheHole()); |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::SetObjectProperty(isolate, target, name, value, SLOPPY), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::SetObjectProperty( |
+ isolate, target, name, value, SLOPPY), |
+ JSObject); |
} |
// Second fill all stack locals. |
@@ -11590,10 +11178,9 @@ static MaybeHandle<JSObject> MaterializeStackLocalsWithFrameInspector( |
Handle<Object> value(frame_inspector->GetExpression(i), isolate); |
if (value->IsTheHole()) continue; |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::SetObjectProperty(isolate, target, name, value, SLOPPY), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::SetObjectProperty( |
+ isolate, target, name, value, SLOPPY), |
+ JSObject); |
} |
return target; |
@@ -11634,17 +11221,15 @@ static void UpdateStackLocalsFromMaterializedObject(Isolate* isolate, |
if (frame->GetExpression(i)->IsTheHole()) continue; |
HandleScope scope(isolate); |
Handle<Object> value = Object::GetPropertyOrElement( |
- target, |
- handle(scope_info->StackLocalName(i), isolate)).ToHandleChecked(); |
+ target, handle(scope_info->StackLocalName(i), |
+ isolate)).ToHandleChecked(); |
frame->SetExpression(i, *value); |
} |
} |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalContext( |
- Isolate* isolate, |
- Handle<JSObject> target, |
- Handle<JSFunction> function, |
+ Isolate* isolate, Handle<JSObject> target, Handle<JSFunction> function, |
JavaScriptFrame* frame) { |
HandleScope scope(isolate); |
Handle<SharedFunctionInfo> shared(function->shared()); |
@@ -11655,8 +11240,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalContext( |
// Third fill all context locals. |
Handle<Context> frame_context(Context::cast(frame->context())); |
Handle<Context> function_context(frame_context->declaration_context()); |
- if (!ScopeInfo::CopyContextLocalsToScopeObject( |
- scope_info, function_context, target)) { |
+ if (!ScopeInfo::CopyContextLocalsToScopeObject(scope_info, function_context, |
+ target)) { |
return MaybeHandle<JSObject>(); |
} |
@@ -11668,8 +11253,7 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalContext( |
Handle<JSObject> ext(JSObject::cast(function_context->extension())); |
Handle<FixedArray> keys; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, keys, |
- JSReceiver::GetKeys(ext, JSReceiver::INCLUDE_PROTOS), |
+ isolate, keys, JSReceiver::GetKeys(ext, JSReceiver::INCLUDE_PROTOS), |
JSObject); |
for (int i = 0; i < keys->length(); i++) { |
@@ -11679,10 +11263,9 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalContext( |
Handle<Object> value; |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, value, Object::GetPropertyOrElement(ext, key), JSObject); |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::SetObjectProperty(isolate, target, key, value, SLOPPY), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::SetObjectProperty( |
+ isolate, target, key, value, SLOPPY), |
+ JSObject); |
} |
} |
} |
@@ -11692,9 +11275,7 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalContext( |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalScope( |
- Isolate* isolate, |
- JavaScriptFrame* frame, |
- int inlined_jsframe_index) { |
+ Isolate* isolate, JavaScriptFrame* frame, int inlined_jsframe_index) { |
FrameInspector frame_inspector(frame, inlined_jsframe_index, isolate); |
Handle<JSFunction> function(JSFunction::cast(frame_inspector.GetFunction())); |
@@ -11702,8 +11283,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalScope( |
isolate->factory()->NewJSObject(isolate->object_function()); |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, local_scope, |
- MaterializeStackLocalsWithFrameInspector( |
- isolate, local_scope, function, &frame_inspector), |
+ MaterializeStackLocalsWithFrameInspector(isolate, local_scope, function, |
+ &frame_inspector), |
JSObject); |
return MaterializeLocalContext(isolate, local_scope, function, frame); |
@@ -11711,8 +11292,7 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeLocalScope( |
// Set the context local variable value. |
-static bool SetContextLocalValue(Isolate* isolate, |
- Handle<ScopeInfo> scope_info, |
+static bool SetContextLocalValue(Isolate* isolate, Handle<ScopeInfo> scope_info, |
Handle<Context> context, |
Handle<String> variable_name, |
Handle<Object> new_value) { |
@@ -11733,8 +11313,7 @@ static bool SetContextLocalValue(Isolate* isolate, |
} |
-static bool SetLocalVariableValue(Isolate* isolate, |
- JavaScriptFrame* frame, |
+static bool SetLocalVariableValue(Isolate* isolate, JavaScriptFrame* frame, |
int inlined_jsframe_index, |
Handle<String> variable_name, |
Handle<Object> new_value) { |
@@ -11772,8 +11351,8 @@ static bool SetLocalVariableValue(Isolate* isolate, |
// Context locals. |
Handle<Context> frame_context(Context::cast(frame->context())); |
Handle<Context> function_context(frame_context->declaration_context()); |
- if (SetContextLocalValue( |
- isolate, scope_info, function_context, variable_name, new_value)) { |
+ if (SetContextLocalValue(isolate, scope_info, function_context, |
+ variable_name, new_value)) { |
return true; |
} |
@@ -11803,8 +11382,7 @@ static bool SetLocalVariableValue(Isolate* isolate, |
// Create a plain JSObject which materializes the closure content for the |
// context. |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeClosure( |
- Isolate* isolate, |
- Handle<Context> context) { |
+ Isolate* isolate, Handle<Context> context) { |
DCHECK(context->IsFunctionContext()); |
Handle<SharedFunctionInfo> shared(context->closure()->shared()); |
@@ -11816,8 +11394,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeClosure( |
isolate->factory()->NewJSObject(isolate->object_function()); |
// Fill all context locals to the context extension. |
- if (!ScopeInfo::CopyContextLocalsToScopeObject( |
- scope_info, context, closure_scope)) { |
+ if (!ScopeInfo::CopyContextLocalsToScopeObject(scope_info, context, |
+ closure_scope)) { |
return MaybeHandle<JSObject>(); |
} |
@@ -11827,8 +11405,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeClosure( |
Handle<JSObject> ext(JSObject::cast(context->extension())); |
Handle<FixedArray> keys; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, keys, |
- JSReceiver::GetKeys(ext, JSReceiver::INCLUDE_PROTOS), JSObject); |
+ isolate, keys, JSReceiver::GetKeys(ext, JSReceiver::INCLUDE_PROTOS), |
+ JSObject); |
for (int i = 0; i < keys->length(); i++) { |
HandleScope scope(isolate); |
@@ -11838,10 +11416,9 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeClosure( |
Handle<Object> value; |
ASSIGN_RETURN_ON_EXCEPTION( |
isolate, value, Object::GetPropertyOrElement(ext, key), JSObject); |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::DefineObjectProperty(closure_scope, key, value, NONE), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::DefineObjectProperty( |
+ closure_scope, key, value, NONE), |
+ JSObject); |
} |
} |
@@ -11850,8 +11427,7 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeClosure( |
// This method copies structure of MaterializeClosure method above. |
-static bool SetClosureVariableValue(Isolate* isolate, |
- Handle<Context> context, |
+static bool SetClosureVariableValue(Isolate* isolate, Handle<Context> context, |
Handle<String> variable_name, |
Handle<Object> new_value) { |
DCHECK(context->IsFunctionContext()); |
@@ -11860,8 +11436,8 @@ static bool SetClosureVariableValue(Isolate* isolate, |
Handle<ScopeInfo> scope_info(shared->scope_info()); |
// Context locals to the context extension. |
- if (SetContextLocalValue( |
- isolate, scope_info, context, variable_name, new_value)) { |
+ if (SetContextLocalValue(isolate, scope_info, context, variable_name, |
+ new_value)) { |
return true; |
} |
@@ -11873,8 +11449,8 @@ static bool SetClosureVariableValue(Isolate* isolate, |
DCHECK(maybe.has_value); |
if (maybe.value) { |
// We don't expect this to do anything except replacing property value. |
- Runtime::DefineObjectProperty( |
- ext, variable_name, new_value, NONE).Assert(); |
+ Runtime::DefineObjectProperty(ext, variable_name, new_value, NONE) |
+ .Assert(); |
return true; |
} |
} |
@@ -11886,24 +11462,21 @@ static bool SetClosureVariableValue(Isolate* isolate, |
// Create a plain JSObject which materializes the scope for the specified |
// catch context. |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeCatchScope( |
- Isolate* isolate, |
- Handle<Context> context) { |
+ Isolate* isolate, Handle<Context> context) { |
DCHECK(context->IsCatchContext()); |
Handle<String> name(String::cast(context->extension())); |
Handle<Object> thrown_object(context->get(Context::THROWN_OBJECT_INDEX), |
isolate); |
Handle<JSObject> catch_scope = |
isolate->factory()->NewJSObject(isolate->object_function()); |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::DefineObjectProperty(catch_scope, name, thrown_object, NONE), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::DefineObjectProperty( |
+ catch_scope, name, thrown_object, NONE), |
+ JSObject); |
return catch_scope; |
} |
-static bool SetCatchVariableValue(Isolate* isolate, |
- Handle<Context> context, |
+static bool SetCatchVariableValue(Isolate* isolate, Handle<Context> context, |
Handle<String> variable_name, |
Handle<Object> new_value) { |
DCHECK(context->IsCatchContext()); |
@@ -11919,8 +11492,7 @@ static bool SetCatchVariableValue(Isolate* isolate, |
// Create a plain JSObject which materializes the block scope for the specified |
// block context. |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeBlockScope( |
- Isolate* isolate, |
- Handle<Context> context) { |
+ Isolate* isolate, Handle<Context> context) { |
DCHECK(context->IsBlockContext()); |
Handle<ScopeInfo> scope_info(ScopeInfo::cast(context->extension())); |
@@ -11930,8 +11502,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeBlockScope( |
isolate->factory()->NewJSObject(isolate->object_function()); |
// Fill all context locals. |
- if (!ScopeInfo::CopyContextLocalsToScopeObject( |
- scope_info, context, block_scope)) { |
+ if (!ScopeInfo::CopyContextLocalsToScopeObject(scope_info, context, |
+ block_scope)) { |
return MaybeHandle<JSObject>(); |
} |
@@ -11942,8 +11514,7 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeBlockScope( |
// Create a plain JSObject which materializes the module scope for the specified |
// module context. |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeModuleScope( |
- Isolate* isolate, |
- Handle<Context> context) { |
+ Isolate* isolate, Handle<Context> context) { |
DCHECK(context->IsModuleContext()); |
Handle<ScopeInfo> scope_info(ScopeInfo::cast(context->extension())); |
@@ -11953,8 +11524,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeModuleScope( |
isolate->factory()->NewJSObject(isolate->object_function()); |
// Fill all context locals. |
- if (!ScopeInfo::CopyContextLocalsToScopeObject( |
- scope_info, context, module_scope)) { |
+ if (!ScopeInfo::CopyContextLocalsToScopeObject(scope_info, context, |
+ module_scope)) { |
return MaybeHandle<JSObject>(); |
} |
@@ -11978,18 +11549,15 @@ class ScopeIterator { |
ScopeTypeModule |
}; |
- ScopeIterator(Isolate* isolate, |
- JavaScriptFrame* frame, |
- int inlined_jsframe_index, |
- bool ignore_nested_scopes = false) |
- : isolate_(isolate), |
- frame_(frame), |
- inlined_jsframe_index_(inlined_jsframe_index), |
- function_(frame->function()), |
- context_(Context::cast(frame->context())), |
- nested_scope_chain_(4), |
- failed_(false) { |
- |
+ ScopeIterator(Isolate* isolate, JavaScriptFrame* frame, |
+ int inlined_jsframe_index, bool ignore_nested_scopes = false) |
+ : isolate_(isolate), |
+ frame_(frame), |
+ inlined_jsframe_index_(inlined_jsframe_index), |
+ function_(frame->function()), |
+ context_(Context::cast(frame->context())), |
+ nested_scope_chain_(4), |
+ failed_(false) { |
// Catch the case when the debugger stops in an internal function. |
Handle<SharedFunctionInfo> shared_info(function_->shared()); |
Handle<ScopeInfo> scope_info(shared_info->scope_info()); |
@@ -12072,14 +11640,13 @@ class ScopeIterator { |
} |
} |
- ScopeIterator(Isolate* isolate, |
- Handle<JSFunction> function) |
- : isolate_(isolate), |
- frame_(NULL), |
- inlined_jsframe_index_(0), |
- function_(function), |
- context_(function->context()), |
- failed_(false) { |
+ ScopeIterator(Isolate* isolate, Handle<JSFunction> function) |
+ : isolate_(isolate), |
+ frame_(NULL), |
+ inlined_jsframe_index_(0), |
+ function_(function), |
+ context_(function->context()), |
+ failed_(false) { |
if (function->IsBuiltin()) { |
context_ = Handle<Context>(); |
} |
@@ -12121,8 +11688,7 @@ class ScopeIterator { |
Handle<ScopeInfo> scope_info = nested_scope_chain_.last(); |
switch (scope_info->scope_type()) { |
case FUNCTION_SCOPE: |
- DCHECK(context_->IsFunctionContext() || |
- !scope_info->HasContext()); |
+ DCHECK(context_->IsFunctionContext() || !scope_info->HasContext()); |
return ScopeTypeLocal; |
case MODULE_SCOPE: |
DCHECK(context_->IsModuleContext()); |
@@ -12137,8 +11703,7 @@ class ScopeIterator { |
DCHECK(context_->IsCatchContext()); |
return ScopeTypeCatch; |
case BLOCK_SCOPE: |
- DCHECK(!scope_info->HasContext() || |
- context_->IsBlockContext()); |
+ DCHECK(!scope_info->HasContext() || context_->IsBlockContext()); |
return ScopeTypeBlock; |
case EVAL_SCOPE: |
UNREACHABLE(); |
@@ -12199,15 +11764,15 @@ class ScopeIterator { |
break; |
case ScopeIterator::ScopeTypeLocal: |
return SetLocalVariableValue(isolate_, frame_, inlined_jsframe_index_, |
- variable_name, new_value); |
+ variable_name, new_value); |
case ScopeIterator::ScopeTypeWith: |
break; |
case ScopeIterator::ScopeTypeCatch: |
- return SetCatchVariableValue(isolate_, CurrentContext(), |
- variable_name, new_value); |
+ return SetCatchVariableValue(isolate_, CurrentContext(), variable_name, |
+ new_value); |
case ScopeIterator::ScopeTypeClosure: |
return SetClosureVariableValue(isolate_, CurrentContext(), |
- variable_name, new_value); |
+ variable_name, new_value); |
case ScopeIterator::ScopeTypeBlock: |
// TODO(2399): should we implement it? |
break; |
@@ -12234,8 +11799,7 @@ class ScopeIterator { |
// be an actual context. |
Handle<Context> CurrentContext() { |
DCHECK(!failed_); |
- if (Type() == ScopeTypeGlobal || |
- nested_scope_chain_.is_empty()) { |
+ if (Type() == ScopeTypeGlobal || nested_scope_chain_.is_empty()) { |
return context_; |
} else if (nested_scope_chain_.last()->HasContext()) { |
return context_; |
@@ -12344,9 +11908,7 @@ RUNTIME_FUNCTION(Runtime_GetScopeCount) { |
// Count the visible scopes. |
int n = 0; |
- for (ScopeIterator it(isolate, frame, 0); |
- !it.Done(); |
- it.Next()) { |
+ for (ScopeIterator it(isolate, frame, 0); !it.Done(); it.Next()) { |
n++; |
} |
@@ -12372,10 +11934,8 @@ RUNTIME_FUNCTION(Runtime_GetStepInPositions) { |
JavaScriptFrame* frame = frame_it.frame(); |
- Handle<JSFunction> fun = |
- Handle<JSFunction>(frame->function()); |
- Handle<SharedFunctionInfo> shared = |
- Handle<SharedFunctionInfo>(fun->shared()); |
+ Handle<JSFunction> fun = Handle<JSFunction>(frame->function()); |
+ Handle<SharedFunctionInfo> shared = Handle<SharedFunctionInfo>(fun->shared()); |
if (!isolate->debug()->EnsureDebugInfo(shared, fun)) { |
return isolate->heap()->undefined_value(); |
@@ -12414,17 +11974,15 @@ RUNTIME_FUNCTION(Runtime_GetStepInPositions) { |
if (break_location_iterator.IsStepInLocation(isolate)) { |
Smi* position_value = Smi::FromInt(break_location_iterator.position()); |
RETURN_FAILURE_ON_EXCEPTION( |
- isolate, |
- JSObject::SetElement(array, len, |
- Handle<Object>(position_value, isolate), |
- NONE, SLOPPY)); |
+ isolate, JSObject::SetElement( |
+ array, len, Handle<Object>(position_value, isolate), |
+ NONE, SLOPPY)); |
len++; |
} |
} |
// Advance iterator. |
break_location_iterator.Next(); |
- if (current_statement_pos != |
- break_location_iterator.statement_position()) { |
+ if (current_statement_pos != break_location_iterator.statement_position()) { |
break; |
} |
} |
@@ -12438,8 +11996,7 @@ static const int kScopeDetailsSize = 2; |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeScopeDetails( |
- Isolate* isolate, |
- ScopeIterator* it) { |
+ Isolate* isolate, ScopeIterator* it) { |
// Calculate the size of the result. |
int details_size = kScopeDetailsSize; |
Handle<FixedArray> details = isolate->factory()->NewFixedArray(details_size); |
@@ -12447,8 +12004,8 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeScopeDetails( |
// Fill in scope details. |
details->set(kScopeDetailsTypeIndex, Smi::FromInt(it->Type())); |
Handle<JSObject> scope_object; |
- ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, scope_object, it->ScopeObject(), JSObject); |
+ ASSIGN_RETURN_ON_EXCEPTION(isolate, scope_object, it->ScopeObject(), |
+ JSObject); |
details->set(kScopeDetailsObjectIndex, *scope_object); |
return isolate->factory()->NewJSArrayWithElements(details); |
@@ -12489,8 +12046,8 @@ RUNTIME_FUNCTION(Runtime_GetScopeDetails) { |
return isolate->heap()->undefined_value(); |
} |
Handle<JSObject> details; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, details, MaterializeScopeDetails(isolate, &it)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, details, |
+ MaterializeScopeDetails(isolate, &it)); |
return *details; |
} |
@@ -12528,8 +12085,8 @@ RUNTIME_FUNCTION(Runtime_GetAllScopesDetails) { |
ScopeIterator it(isolate, frame, inlined_jsframe_index, ignore_nested_scopes); |
for (; !it.Done(); it.Next()) { |
Handle<JSObject> details; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, details, MaterializeScopeDetails(isolate, &it)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, details, |
+ MaterializeScopeDetails(isolate, &it)); |
result.Add(details); |
} |
@@ -12577,8 +12134,8 @@ RUNTIME_FUNCTION(Runtime_GetFunctionScopeDetails) { |
} |
Handle<JSObject> details; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, details, MaterializeScopeDetails(isolate, &it)); |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, details, |
+ MaterializeScopeDetails(isolate, &it)); |
return *details; |
} |
@@ -12647,9 +12204,7 @@ RUNTIME_FUNCTION(Runtime_DebugPrintScopes) { |
// Print the scopes for the top frame. |
StackFrameLocator locator(isolate); |
JavaScriptFrame* frame = locator.FindJavaScriptFrame(0); |
- for (ScopeIterator it(isolate, frame, 0); |
- !it.Done(); |
- it.Next()) { |
+ for (ScopeIterator it(isolate, frame, 0); !it.Done(); it.Next()) { |
it.DebugPrint(); |
} |
#endif |
@@ -12665,10 +12220,8 @@ RUNTIME_FUNCTION(Runtime_GetThreadCount) { |
// Count all archived V8 threads. |
int n = 0; |
- for (ThreadState* thread = |
- isolate->thread_manager()->FirstThreadStateInUse(); |
- thread != NULL; |
- thread = thread->Next()) { |
+ for (ThreadState* thread = isolate->thread_manager()->FirstThreadStateInUse(); |
+ thread != NULL; thread = thread->Next()) { |
n++; |
} |
@@ -12710,8 +12263,7 @@ RUNTIME_FUNCTION(Runtime_GetThreadDetails) { |
} else { |
// Find the thread with the requested index. |
int n = 1; |
- ThreadState* thread = |
- isolate->thread_manager()->FirstThreadStateInUse(); |
+ ThreadState* thread = isolate->thread_manager()->FirstThreadStateInUse(); |
while (index != n && thread != NULL) { |
thread = thread->Next(); |
n++; |
@@ -12739,7 +12291,7 @@ RUNTIME_FUNCTION(Runtime_SetDisableBreak) { |
DCHECK(args.length() == 1); |
CONVERT_BOOLEAN_ARG_CHECKED(disable_break, 0); |
isolate->debug()->set_disable_break(disable_break); |
- return isolate->heap()->undefined_value(); |
+ return isolate->heap()->undefined_value(); |
} |
@@ -12821,8 +12373,7 @@ RUNTIME_FUNCTION(Runtime_SetScriptBreakPoint) { |
// Set break point. |
if (!isolate->debug()->SetBreakPointForScript(script, break_point_object_arg, |
- &source_position, |
- alignment)) { |
+ &source_position, alignment)) { |
return isolate->heap()->undefined_value(); |
} |
@@ -12901,10 +12452,8 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) { |
// Get the step action and check validity. |
StepAction step_action = static_cast<StepAction>(NumberToInt32(args[1])); |
- if (step_action != StepIn && |
- step_action != StepNext && |
- step_action != StepOut && |
- step_action != StepInMin && |
+ if (step_action != StepIn && step_action != StepNext && |
+ step_action != StepOut && step_action != StepInMin && |
step_action != StepMin) { |
return isolate->Throw(isolate->heap()->illegal_argument_string()); |
} |
@@ -12925,8 +12474,7 @@ RUNTIME_FUNCTION(Runtime_PrepareStep) { |
// Prepare step. |
isolate->debug()->PrepareStep(static_cast<StepAction>(step_action), |
- step_count, |
- frame_id); |
+ step_count, frame_id); |
return isolate->heap()->undefined_value(); |
} |
@@ -12943,9 +12491,7 @@ RUNTIME_FUNCTION(Runtime_ClearStepping) { |
// Helper function to find or create the arguments object for |
// Runtime_DebugEvaluate. |
MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeArgumentsObject( |
- Isolate* isolate, |
- Handle<JSObject> target, |
- Handle<JSFunction> function) { |
+ Isolate* isolate, Handle<JSObject> target, Handle<JSFunction> function) { |
// Do not materialize the arguments object for eval or top-level code. |
// Skip if "arguments" is already taken. |
if (!function->shared()->is_function()) return target; |
@@ -12955,13 +12501,12 @@ MUST_USE_RESULT static MaybeHandle<JSObject> MaterializeArgumentsObject( |
if (maybe.value) return target; |
// FunctionGetArguments can't throw an exception. |
- Handle<JSObject> arguments = Handle<JSObject>::cast( |
- Accessors::FunctionGetArguments(function)); |
+ Handle<JSObject> arguments = |
+ Handle<JSObject>::cast(Accessors::FunctionGetArguments(function)); |
Handle<String> arguments_str = isolate->factory()->arguments_string(); |
- RETURN_ON_EXCEPTION( |
- isolate, |
- Runtime::DefineObjectProperty(target, arguments_str, arguments, NONE), |
- JSObject); |
+ RETURN_ON_EXCEPTION(isolate, Runtime::DefineObjectProperty( |
+ target, arguments_str, arguments, NONE), |
+ JSObject); |
return target; |
} |
@@ -12980,18 +12525,14 @@ static MaybeHandle<Object> DebugEvaluate(Isolate* isolate, |
Handle<JSFunction> eval_fun; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, eval_fun, |
- Compiler::GetFunctionFromEval(source, |
- context, |
- SLOPPY, |
- NO_PARSE_RESTRICTION, |
- RelocInfo::kNoPosition), |
+ isolate, eval_fun, Compiler::GetFunctionFromEval(source, context, SLOPPY, |
+ NO_PARSE_RESTRICTION, |
+ RelocInfo::kNoPosition), |
Object); |
Handle<Object> result; |
ASSIGN_RETURN_ON_EXCEPTION( |
- isolate, result, |
- Execution::Call(isolate, eval_fun, receiver, 0, NULL), |
+ isolate, result, Execution::Call(isolate, eval_fun, receiver, 0, NULL), |
Object); |
// Skip the global proxy as it has no properties and always delegates to the |
@@ -13064,8 +12605,8 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluate) { |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, materialized, |
- MaterializeStackLocalsWithFrameInspector( |
- isolate, materialized, function, &frame_inspector)); |
+ MaterializeStackLocalsWithFrameInspector(isolate, materialized, function, |
+ &frame_inspector)); |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, materialized, |
@@ -13081,8 +12622,8 @@ RUNTIME_FUNCTION(Runtime_DebugEvaluate) { |
DebugEvaluate(isolate, context, context_extension, receiver, source)); |
// Write back potential changes to materialized stack locals to the stack. |
- UpdateStackLocalsFromMaterializedObject( |
- isolate, materialized, function, frame, inlined_jsframe_index); |
+ UpdateStackLocalsFromMaterializedObject(isolate, materialized, function, |
+ frame, inlined_jsframe_index); |
return *result; |
} |
@@ -13154,8 +12695,7 @@ RUNTIME_FUNCTION(Runtime_DebugGetLoadedScripts) { |
// Helper function used by Runtime_DebugReferencedBy below. |
-static int DebugReferencedBy(HeapIterator* iterator, |
- JSObject* target, |
+static int DebugReferencedBy(HeapIterator* iterator, JSObject* target, |
Object* instance_filter, int max_references, |
FixedArray* instances, int instances_size, |
JSFunction* arguments_function) { |
@@ -13248,9 +12788,8 @@ RUNTIME_FUNCTION(Runtime_DebugReferencedBy) { |
heap->CollectAllGarbage(Heap::kMakeHeapIterableMask, "%DebugConstructedBy"); |
{ |
HeapIterator heap_iterator(heap); |
- count = DebugReferencedBy(&heap_iterator, |
- *target, *instance_filter, max_references, |
- NULL, 0, *arguments_function); |
+ count = DebugReferencedBy(&heap_iterator, *target, *instance_filter, |
+ max_references, NULL, 0, *arguments_function); |
} |
// Allocate an array to hold the result. |
@@ -13259,9 +12798,9 @@ RUNTIME_FUNCTION(Runtime_DebugReferencedBy) { |
// Fill the referencing objects. |
{ |
HeapIterator heap_iterator(heap); |
- count = DebugReferencedBy(&heap_iterator, |
- *target, *instance_filter, max_references, |
- *instances, count, *arguments_function); |
+ count = DebugReferencedBy(&heap_iterator, *target, *instance_filter, |
+ max_references, *instances, count, |
+ *arguments_function); |
} |
// Return result as JS array. |
@@ -13274,10 +12813,8 @@ RUNTIME_FUNCTION(Runtime_DebugReferencedBy) { |
// Helper function used by Runtime_DebugConstructedBy below. |
-static int DebugConstructedBy(HeapIterator* iterator, |
- JSFunction* constructor, |
- int max_references, |
- FixedArray* instances, |
+static int DebugConstructedBy(HeapIterator* iterator, JSFunction* constructor, |
+ int max_references, FixedArray* instances, |
int instances_size) { |
DisallowHeapAllocation no_allocation; |
@@ -13326,11 +12863,8 @@ RUNTIME_FUNCTION(Runtime_DebugConstructedBy) { |
heap->CollectAllGarbage(Heap::kMakeHeapIterableMask, "%DebugConstructedBy"); |
{ |
HeapIterator heap_iterator(heap); |
- count = DebugConstructedBy(&heap_iterator, |
- *constructor, |
- max_references, |
- NULL, |
- 0); |
+ count = DebugConstructedBy(&heap_iterator, *constructor, max_references, |
+ NULL, 0); |
} |
// Allocate an array to hold the result. |
@@ -13339,11 +12873,8 @@ RUNTIME_FUNCTION(Runtime_DebugConstructedBy) { |
// Fill the referencing objects. |
{ |
HeapIterator heap_iterator2(heap); |
- count = DebugConstructedBy(&heap_iterator2, |
- *constructor, |
- max_references, |
- *instances, |
- count); |
+ count = DebugConstructedBy(&heap_iterator2, *constructor, max_references, |
+ *instances, count); |
} |
// Return result as JS array. |
@@ -13440,8 +12971,7 @@ static int FindSharedFunctionInfosForScript(HeapIterator* iterator, |
DisallowHeapAllocation no_allocation; |
int counter = 0; |
int buffer_size = buffer->length(); |
- for (HeapObject* obj = iterator->next(); |
- obj != NULL; |
+ for (HeapObject* obj = iterator->next(); obj != NULL; |
obj = iterator->next()) { |
DCHECK(obj != NULL); |
if (!obj->IsSharedFunctionInfo()) { |
@@ -13540,7 +13070,7 @@ RUNTIME_FUNCTION(Runtime_LiveEditReplaceScript) { |
Handle<Script> original_script(Script::cast(original_script_value->value())); |
Handle<Object> old_script = LiveEdit::ChangeScriptSource( |
- original_script, new_source, old_script_name); |
+ original_script, new_source, old_script_name); |
if (old_script->IsScript()) { |
Handle<Script> script_handle = Handle<Script>::cast(old_script); |
@@ -13617,8 +13147,8 @@ RUNTIME_FUNCTION(Runtime_LiveEditReplaceRefToNestedFunction) { |
RUNTIME_ASSERT(orig_wrapper->value()->IsSharedFunctionInfo()); |
RUNTIME_ASSERT(subst_wrapper->value()->IsSharedFunctionInfo()); |
- LiveEdit::ReplaceRefToNestedFunction( |
- parent_wrapper, orig_wrapper, subst_wrapper); |
+ LiveEdit::ReplaceRefToNestedFunction(parent_wrapper, orig_wrapper, |
+ subst_wrapper); |
return isolate->heap()->undefined_value(); |
} |
@@ -13760,18 +13290,12 @@ RUNTIME_FUNCTION(Runtime_ExecuteInDebugContext) { |
MaybeHandle<Object> maybe_result; |
if (without_debugger) { |
- maybe_result = Execution::Call(isolate, |
- function, |
- handle(function->global_proxy()), |
- 0, |
- NULL); |
+ maybe_result = Execution::Call(isolate, function, |
+ handle(function->global_proxy()), 0, NULL); |
} else { |
DebugScope debug_scope(isolate->debug()); |
- maybe_result = Execution::Call(isolate, |
- function, |
- handle(function->global_proxy()), |
- 0, |
- NULL); |
+ maybe_result = Execution::Call(isolate, function, |
+ handle(function->global_proxy()), 0, NULL); |
} |
Handle<Object> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, maybe_result); |
@@ -13813,777 +13337,55 @@ RUNTIME_FUNCTION(Runtime_GetHeapUsage) { |
} |
-#ifdef V8_I18N_SUPPORT |
-RUNTIME_FUNCTION(Runtime_CanonicalizeLanguageTag) { |
- HandleScope scope(isolate); |
- Factory* factory = isolate->factory(); |
- |
- DCHECK(args.length() == 1); |
- CONVERT_ARG_HANDLE_CHECKED(String, locale_id_str, 0); |
- |
- v8::String::Utf8Value locale_id(v8::Utils::ToLocal(locale_id_str)); |
- |
- // Return value which denotes invalid language tag. |
- const char* const kInvalidTag = "invalid-tag"; |
- |
- UErrorCode error = U_ZERO_ERROR; |
- char icu_result[ULOC_FULLNAME_CAPACITY]; |
- int icu_length = 0; |
- |
- uloc_forLanguageTag(*locale_id, icu_result, ULOC_FULLNAME_CAPACITY, |
- &icu_length, &error); |
- if (U_FAILURE(error) || icu_length == 0) { |
- return *factory->NewStringFromAsciiChecked(kInvalidTag); |
+// Finds the script object from the script data. NOTE: This operation uses |
+// heap traversal to find the function generated for the source position |
+// for the requested break point. For lazily compiled functions several heap |
+// traversals might be required rendering this operation as a rather slow |
+// operation. However for setting break points which is normally done through |
+// some kind of user interaction the performance is not crucial. |
+static Handle<Object> Runtime_GetScriptFromScriptName( |
+ Handle<String> script_name) { |
+ // Scan the heap for Script objects to find the script with the requested |
+ // script data. |
+ Handle<Script> script; |
+ Factory* factory = script_name->GetIsolate()->factory(); |
+ Heap* heap = script_name->GetHeap(); |
+ HeapIterator iterator(heap); |
+ HeapObject* obj = NULL; |
+ while (script.is_null() && ((obj = iterator.next()) != NULL)) { |
+ // If a script is found check if it has the script data requested. |
+ if (obj->IsScript()) { |
+ if (Script::cast(obj)->name()->IsString()) { |
+ if (String::cast(Script::cast(obj)->name())->Equals(*script_name)) { |
+ script = Handle<Script>(Script::cast(obj)); |
+ } |
+ } |
+ } |
} |
- char result[ULOC_FULLNAME_CAPACITY]; |
- |
- // Force strict BCP47 rules. |
- uloc_toLanguageTag(icu_result, result, ULOC_FULLNAME_CAPACITY, TRUE, &error); |
- |
- if (U_FAILURE(error)) { |
- return *factory->NewStringFromAsciiChecked(kInvalidTag); |
- } |
+ // If no script with the requested script data is found return undefined. |
+ if (script.is_null()) return factory->undefined_value(); |
- return *factory->NewStringFromAsciiChecked(result); |
+ // Return the script found. |
+ return Script::GetWrapper(script); |
} |
-RUNTIME_FUNCTION(Runtime_AvailableLocalesOf) { |
+// Get the script object from script data. NOTE: Regarding performance |
+// see the NOTE for GetScriptFromScriptData. |
+// args[0]: script data for the script to find the source for |
+RUNTIME_FUNCTION(Runtime_GetScript) { |
HandleScope scope(isolate); |
- Factory* factory = isolate->factory(); |
DCHECK(args.length() == 1); |
- CONVERT_ARG_HANDLE_CHECKED(String, service, 0); |
- const icu::Locale* available_locales = NULL; |
- int32_t count = 0; |
+ CONVERT_ARG_CHECKED(String, script_name, 0); |
- if (service->IsUtf8EqualTo(CStrVector("collator"))) { |
- available_locales = icu::Collator::getAvailableLocales(count); |
- } else if (service->IsUtf8EqualTo(CStrVector("numberformat"))) { |
- available_locales = icu::NumberFormat::getAvailableLocales(count); |
- } else if (service->IsUtf8EqualTo(CStrVector("dateformat"))) { |
- available_locales = icu::DateFormat::getAvailableLocales(count); |
- } else if (service->IsUtf8EqualTo(CStrVector("breakiterator"))) { |
- available_locales = icu::BreakIterator::getAvailableLocales(count); |
- } |
- |
- UErrorCode error = U_ZERO_ERROR; |
- char result[ULOC_FULLNAME_CAPACITY]; |
- Handle<JSObject> locales = |
- factory->NewJSObject(isolate->object_function()); |
- |
- for (int32_t i = 0; i < count; ++i) { |
- const char* icu_name = available_locales[i].getName(); |
- |
- error = U_ZERO_ERROR; |
- // No need to force strict BCP47 rules. |
- uloc_toLanguageTag(icu_name, result, ULOC_FULLNAME_CAPACITY, FALSE, &error); |
- if (U_FAILURE(error)) { |
- // This shouldn't happen, but lets not break the user. |
- continue; |
- } |
- |
- RETURN_FAILURE_ON_EXCEPTION(isolate, |
- JSObject::SetOwnPropertyIgnoreAttributes( |
- locales, |
- factory->NewStringFromAsciiChecked(result), |
- factory->NewNumber(i), |
- NONE)); |
- } |
- |
- return *locales; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_GetDefaultICULocale) { |
- HandleScope scope(isolate); |
- Factory* factory = isolate->factory(); |
- |
- DCHECK(args.length() == 0); |
- |
- icu::Locale default_locale; |
- |
- // Set the locale |
- char result[ULOC_FULLNAME_CAPACITY]; |
- UErrorCode status = U_ZERO_ERROR; |
- uloc_toLanguageTag( |
- default_locale.getName(), result, ULOC_FULLNAME_CAPACITY, FALSE, &status); |
- if (U_SUCCESS(status)) { |
- return *factory->NewStringFromAsciiChecked(result); |
- } |
- |
- return *factory->NewStringFromStaticChars("und"); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_GetLanguageTagVariants) { |
- HandleScope scope(isolate); |
- Factory* factory = isolate->factory(); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSArray, input, 0); |
- |
- uint32_t length = static_cast<uint32_t>(input->length()->Number()); |
- // Set some limit to prevent fuzz tests from going OOM. |
- // Can be bumped when callers' requirements change. |
- RUNTIME_ASSERT(length < 100); |
- Handle<FixedArray> output = factory->NewFixedArray(length); |
- Handle<Name> maximized = factory->NewStringFromStaticChars("maximized"); |
- Handle<Name> base = factory->NewStringFromStaticChars("base"); |
- for (unsigned int i = 0; i < length; ++i) { |
- Handle<Object> locale_id; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, locale_id, Object::GetElement(isolate, input, i)); |
- if (!locale_id->IsString()) { |
- return isolate->Throw(*factory->illegal_argument_string()); |
- } |
- |
- v8::String::Utf8Value utf8_locale_id( |
- v8::Utils::ToLocal(Handle<String>::cast(locale_id))); |
- |
- UErrorCode error = U_ZERO_ERROR; |
- |
- // Convert from BCP47 to ICU format. |
- // de-DE-u-co-phonebk -> de_DE@collation=phonebook |
- char icu_locale[ULOC_FULLNAME_CAPACITY]; |
- int icu_locale_length = 0; |
- uloc_forLanguageTag(*utf8_locale_id, icu_locale, ULOC_FULLNAME_CAPACITY, |
- &icu_locale_length, &error); |
- if (U_FAILURE(error) || icu_locale_length == 0) { |
- return isolate->Throw(*factory->illegal_argument_string()); |
- } |
- |
- // Maximize the locale. |
- // de_DE@collation=phonebook -> de_Latn_DE@collation=phonebook |
- char icu_max_locale[ULOC_FULLNAME_CAPACITY]; |
- uloc_addLikelySubtags( |
- icu_locale, icu_max_locale, ULOC_FULLNAME_CAPACITY, &error); |
- |
- // Remove extensions from maximized locale. |
- // de_Latn_DE@collation=phonebook -> de_Latn_DE |
- char icu_base_max_locale[ULOC_FULLNAME_CAPACITY]; |
- uloc_getBaseName( |
- icu_max_locale, icu_base_max_locale, ULOC_FULLNAME_CAPACITY, &error); |
- |
- // Get original name without extensions. |
- // de_DE@collation=phonebook -> de_DE |
- char icu_base_locale[ULOC_FULLNAME_CAPACITY]; |
- uloc_getBaseName( |
- icu_locale, icu_base_locale, ULOC_FULLNAME_CAPACITY, &error); |
- |
- // Convert from ICU locale format to BCP47 format. |
- // de_Latn_DE -> de-Latn-DE |
- char base_max_locale[ULOC_FULLNAME_CAPACITY]; |
- uloc_toLanguageTag(icu_base_max_locale, base_max_locale, |
- ULOC_FULLNAME_CAPACITY, FALSE, &error); |
- |
- // de_DE -> de-DE |
- char base_locale[ULOC_FULLNAME_CAPACITY]; |
- uloc_toLanguageTag( |
- icu_base_locale, base_locale, ULOC_FULLNAME_CAPACITY, FALSE, &error); |
- |
- if (U_FAILURE(error)) { |
- return isolate->Throw(*factory->illegal_argument_string()); |
- } |
- |
- Handle<JSObject> result = factory->NewJSObject(isolate->object_function()); |
- Handle<String> value = factory->NewStringFromAsciiChecked(base_max_locale); |
- JSObject::AddProperty(result, maximized, value, NONE); |
- value = factory->NewStringFromAsciiChecked(base_locale); |
- JSObject::AddProperty(result, base, value, NONE); |
- output->set(i, *result); |
- } |
- |
- Handle<JSArray> result = factory->NewJSArrayWithElements(output); |
- result->set_length(Smi::FromInt(length)); |
- return *result; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_IsInitializedIntlObject) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); |
- |
- if (!input->IsJSObject()) return isolate->heap()->false_value(); |
- Handle<JSObject> obj = Handle<JSObject>::cast(input); |
- |
- Handle<String> marker = isolate->factory()->intl_initialized_marker_string(); |
- Handle<Object> tag(obj->GetHiddenProperty(marker), isolate); |
- return isolate->heap()->ToBoolean(!tag->IsTheHole()); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_IsInitializedIntlObjectOfType) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, expected_type, 1); |
- |
- if (!input->IsJSObject()) return isolate->heap()->false_value(); |
- Handle<JSObject> obj = Handle<JSObject>::cast(input); |
- |
- Handle<String> marker = isolate->factory()->intl_initialized_marker_string(); |
- Handle<Object> tag(obj->GetHiddenProperty(marker), isolate); |
- return isolate->heap()->ToBoolean( |
- tag->IsString() && String::cast(*tag)->Equals(*expected_type)); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_MarkAsInitializedIntlObjectOfType) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, input, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, type, 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, impl, 2); |
- |
- Handle<String> marker = isolate->factory()->intl_initialized_marker_string(); |
- JSObject::SetHiddenProperty(input, marker, type); |
- |
- marker = isolate->factory()->intl_impl_object_string(); |
- JSObject::SetHiddenProperty(input, marker, impl); |
- |
- return isolate->heap()->undefined_value(); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_GetImplFromInitializedIntlObject) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(Object, input, 0); |
- |
- if (!input->IsJSObject()) { |
- Vector< Handle<Object> > arguments = HandleVector(&input, 1); |
- THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
- NewTypeError("not_intl_object", arguments)); |
- } |
- |
- Handle<JSObject> obj = Handle<JSObject>::cast(input); |
- |
- Handle<String> marker = isolate->factory()->intl_impl_object_string(); |
- Handle<Object> impl(obj->GetHiddenProperty(marker), isolate); |
- if (impl->IsTheHole()) { |
- Vector< Handle<Object> > arguments = HandleVector(&obj, 1); |
- THROW_NEW_ERROR_RETURN_FAILURE(isolate, |
- NewTypeError("not_intl_object", arguments)); |
- } |
- return *impl; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_CreateDateTimeFormat) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |
- |
- Handle<ObjectTemplateInfo> date_format_template = |
- I18N::GetTemplate(isolate); |
- |
- // Create an empty object wrapper. |
- Handle<JSObject> local_object; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, local_object, |
- Execution::InstantiateObject(date_format_template)); |
- |
- // Set date time formatter as internal field of the resulting JS object. |
- icu::SimpleDateFormat* date_format = DateFormat::InitializeDateTimeFormat( |
- isolate, locale, options, resolved); |
- |
- if (!date_format) return isolate->ThrowIllegalOperation(); |
- |
- local_object->SetInternalField(0, reinterpret_cast<Smi*>(date_format)); |
- |
- Factory* factory = isolate->factory(); |
- Handle<String> key = factory->NewStringFromStaticChars("dateFormat"); |
- Handle<String> value = factory->NewStringFromStaticChars("valid"); |
- JSObject::AddProperty(local_object, key, value, NONE); |
- |
- // Make object handle weak so we can delete the data format once GC kicks in. |
- Handle<Object> wrapper = isolate->global_handles()->Create(*local_object); |
- GlobalHandles::MakeWeak(wrapper.location(), |
- reinterpret_cast<void*>(wrapper.location()), |
- DateFormat::DeleteDateFormat); |
- return *local_object; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_InternalDateFormat) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, date_format_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(JSDate, date, 1); |
- |
- Handle<Object> value; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, value, Execution::ToNumber(isolate, date)); |
- |
- icu::SimpleDateFormat* date_format = |
- DateFormat::UnpackDateFormat(isolate, date_format_holder); |
- if (!date_format) return isolate->ThrowIllegalOperation(); |
- |
- icu::UnicodeString result; |
- date_format->format(value->Number(), result); |
- |
- Handle<String> result_str; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result_str, |
- isolate->factory()->NewStringFromTwoByte( |
- Vector<const uint16_t>( |
- reinterpret_cast<const uint16_t*>(result.getBuffer()), |
- result.length()))); |
- return *result_str; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_InternalDateParse) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, date_format_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, date_string, 1); |
- |
- v8::String::Utf8Value utf8_date(v8::Utils::ToLocal(date_string)); |
- icu::UnicodeString u_date(icu::UnicodeString::fromUTF8(*utf8_date)); |
- icu::SimpleDateFormat* date_format = |
- DateFormat::UnpackDateFormat(isolate, date_format_holder); |
- if (!date_format) return isolate->ThrowIllegalOperation(); |
- |
- UErrorCode status = U_ZERO_ERROR; |
- UDate date = date_format->parse(u_date, status); |
- if (U_FAILURE(status)) return isolate->heap()->undefined_value(); |
- |
- Handle<Object> result; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result, |
- Execution::NewDate(isolate, static_cast<double>(date))); |
- DCHECK(result->IsJSDate()); |
- return *result; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_CreateNumberFormat) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |
- |
- Handle<ObjectTemplateInfo> number_format_template = |
- I18N::GetTemplate(isolate); |
- |
- // Create an empty object wrapper. |
- Handle<JSObject> local_object; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, local_object, |
- Execution::InstantiateObject(number_format_template)); |
- |
- // Set number formatter as internal field of the resulting JS object. |
- icu::DecimalFormat* number_format = NumberFormat::InitializeNumberFormat( |
- isolate, locale, options, resolved); |
- |
- if (!number_format) return isolate->ThrowIllegalOperation(); |
- |
- local_object->SetInternalField(0, reinterpret_cast<Smi*>(number_format)); |
- |
- Factory* factory = isolate->factory(); |
- Handle<String> key = factory->NewStringFromStaticChars("numberFormat"); |
- Handle<String> value = factory->NewStringFromStaticChars("valid"); |
- JSObject::AddProperty(local_object, key, value, NONE); |
- |
- Handle<Object> wrapper = isolate->global_handles()->Create(*local_object); |
- GlobalHandles::MakeWeak(wrapper.location(), |
- reinterpret_cast<void*>(wrapper.location()), |
- NumberFormat::DeleteNumberFormat); |
- return *local_object; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_InternalNumberFormat) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, number_format_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(Object, number, 1); |
- |
- Handle<Object> value; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, value, Execution::ToNumber(isolate, number)); |
- |
- icu::DecimalFormat* number_format = |
- NumberFormat::UnpackNumberFormat(isolate, number_format_holder); |
- if (!number_format) return isolate->ThrowIllegalOperation(); |
- |
- icu::UnicodeString result; |
- number_format->format(value->Number(), result); |
- |
- Handle<String> result_str; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result_str, |
- isolate->factory()->NewStringFromTwoByte( |
- Vector<const uint16_t>( |
- reinterpret_cast<const uint16_t*>(result.getBuffer()), |
- result.length()))); |
- return *result_str; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_InternalNumberParse) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, number_format_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, number_string, 1); |
- |
- v8::String::Utf8Value utf8_number(v8::Utils::ToLocal(number_string)); |
- icu::UnicodeString u_number(icu::UnicodeString::fromUTF8(*utf8_number)); |
- icu::DecimalFormat* number_format = |
- NumberFormat::UnpackNumberFormat(isolate, number_format_holder); |
- if (!number_format) return isolate->ThrowIllegalOperation(); |
- |
- UErrorCode status = U_ZERO_ERROR; |
- icu::Formattable result; |
- // ICU 4.6 doesn't support parseCurrency call. We need to wait for ICU49 |
- // to be part of Chrome. |
- // TODO(cira): Include currency parsing code using parseCurrency call. |
- // We need to check if the formatter parses all currencies or only the |
- // one it was constructed with (it will impact the API - how to return ISO |
- // code and the value). |
- number_format->parse(u_number, result, status); |
- if (U_FAILURE(status)) return isolate->heap()->undefined_value(); |
- |
- switch (result.getType()) { |
- case icu::Formattable::kDouble: |
- return *isolate->factory()->NewNumber(result.getDouble()); |
- case icu::Formattable::kLong: |
- return *isolate->factory()->NewNumberFromInt(result.getLong()); |
- case icu::Formattable::kInt64: |
- return *isolate->factory()->NewNumber( |
- static_cast<double>(result.getInt64())); |
- default: |
- return isolate->heap()->undefined_value(); |
- } |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_CreateCollator) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |
- |
- Handle<ObjectTemplateInfo> collator_template = I18N::GetTemplate(isolate); |
- |
- // Create an empty object wrapper. |
- Handle<JSObject> local_object; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, local_object, Execution::InstantiateObject(collator_template)); |
- |
- // Set collator as internal field of the resulting JS object. |
- icu::Collator* collator = Collator::InitializeCollator( |
- isolate, locale, options, resolved); |
- |
- if (!collator) return isolate->ThrowIllegalOperation(); |
- |
- local_object->SetInternalField(0, reinterpret_cast<Smi*>(collator)); |
- |
- Factory* factory = isolate->factory(); |
- Handle<String> key = factory->NewStringFromStaticChars("collator"); |
- Handle<String> value = factory->NewStringFromStaticChars("valid"); |
- JSObject::AddProperty(local_object, key, value, NONE); |
- |
- Handle<Object> wrapper = isolate->global_handles()->Create(*local_object); |
- GlobalHandles::MakeWeak(wrapper.location(), |
- reinterpret_cast<void*>(wrapper.location()), |
- Collator::DeleteCollator); |
- return *local_object; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_InternalCompare) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, collator_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, string1, 1); |
- CONVERT_ARG_HANDLE_CHECKED(String, string2, 2); |
- |
- icu::Collator* collator = Collator::UnpackCollator(isolate, collator_holder); |
- if (!collator) return isolate->ThrowIllegalOperation(); |
- |
- v8::String::Value string_value1(v8::Utils::ToLocal(string1)); |
- v8::String::Value string_value2(v8::Utils::ToLocal(string2)); |
- const UChar* u_string1 = reinterpret_cast<const UChar*>(*string_value1); |
- const UChar* u_string2 = reinterpret_cast<const UChar*>(*string_value2); |
- UErrorCode status = U_ZERO_ERROR; |
- UCollationResult result = collator->compare(u_string1, |
- string_value1.length(), |
- u_string2, |
- string_value2.length(), |
- status); |
- if (U_FAILURE(status)) return isolate->ThrowIllegalOperation(); |
- |
- return *isolate->factory()->NewNumberFromInt(result); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_StringNormalize) { |
- HandleScope scope(isolate); |
- static const UNormalizationMode normalizationForms[] = |
- { UNORM_NFC, UNORM_NFD, UNORM_NFKC, UNORM_NFKD }; |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(String, stringValue, 0); |
- CONVERT_NUMBER_CHECKED(int, form_id, Int32, args[1]); |
- RUNTIME_ASSERT(form_id >= 0 && |
- static_cast<size_t>(form_id) < arraysize(normalizationForms)); |
- |
- v8::String::Value string_value(v8::Utils::ToLocal(stringValue)); |
- const UChar* u_value = reinterpret_cast<const UChar*>(*string_value); |
- |
- // TODO(mnita): check Normalizer2 (not available in ICU 46) |
- UErrorCode status = U_ZERO_ERROR; |
- icu::UnicodeString result; |
- icu::Normalizer::normalize(u_value, normalizationForms[form_id], 0, |
- result, status); |
- if (U_FAILURE(status)) { |
- return isolate->heap()->undefined_value(); |
- } |
- |
- Handle<String> result_str; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, result_str, |
- isolate->factory()->NewStringFromTwoByte( |
- Vector<const uint16_t>( |
- reinterpret_cast<const uint16_t*>(result.getBuffer()), |
- result.length()))); |
- return *result_str; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_CreateBreakIterator) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 3); |
- |
- CONVERT_ARG_HANDLE_CHECKED(String, locale, 0); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, options, 1); |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, resolved, 2); |
- |
- Handle<ObjectTemplateInfo> break_iterator_template = |
- I18N::GetTemplate2(isolate); |
- |
- // Create an empty object wrapper. |
- Handle<JSObject> local_object; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, local_object, |
- Execution::InstantiateObject(break_iterator_template)); |
- |
- // Set break iterator as internal field of the resulting JS object. |
- icu::BreakIterator* break_iterator = BreakIterator::InitializeBreakIterator( |
- isolate, locale, options, resolved); |
- |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- local_object->SetInternalField(0, reinterpret_cast<Smi*>(break_iterator)); |
- // Make sure that the pointer to adopted text is NULL. |
- local_object->SetInternalField(1, reinterpret_cast<Smi*>(NULL)); |
- |
- Factory* factory = isolate->factory(); |
- Handle<String> key = factory->NewStringFromStaticChars("breakIterator"); |
- Handle<String> value = factory->NewStringFromStaticChars("valid"); |
- JSObject::AddProperty(local_object, key, value, NONE); |
- |
- // Make object handle weak so we can delete the break iterator once GC kicks |
- // in. |
- Handle<Object> wrapper = isolate->global_handles()->Create(*local_object); |
- GlobalHandles::MakeWeak(wrapper.location(), |
- reinterpret_cast<void*>(wrapper.location()), |
- BreakIterator::DeleteBreakIterator); |
- return *local_object; |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_BreakIteratorAdoptText) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 2); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, break_iterator_holder, 0); |
- CONVERT_ARG_HANDLE_CHECKED(String, text, 1); |
- |
- icu::BreakIterator* break_iterator = |
- BreakIterator::UnpackBreakIterator(isolate, break_iterator_holder); |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- icu::UnicodeString* u_text = reinterpret_cast<icu::UnicodeString*>( |
- break_iterator_holder->GetInternalField(1)); |
- delete u_text; |
- |
- v8::String::Value text_value(v8::Utils::ToLocal(text)); |
- u_text = new icu::UnicodeString( |
- reinterpret_cast<const UChar*>(*text_value), text_value.length()); |
- break_iterator_holder->SetInternalField(1, reinterpret_cast<Smi*>(u_text)); |
- |
- break_iterator->setText(*u_text); |
- |
- return isolate->heap()->undefined_value(); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_BreakIteratorFirst) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, break_iterator_holder, 0); |
- |
- icu::BreakIterator* break_iterator = |
- BreakIterator::UnpackBreakIterator(isolate, break_iterator_holder); |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- return *isolate->factory()->NewNumberFromInt(break_iterator->first()); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_BreakIteratorNext) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, break_iterator_holder, 0); |
- |
- icu::BreakIterator* break_iterator = |
- BreakIterator::UnpackBreakIterator(isolate, break_iterator_holder); |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- return *isolate->factory()->NewNumberFromInt(break_iterator->next()); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_BreakIteratorCurrent) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, break_iterator_holder, 0); |
- |
- icu::BreakIterator* break_iterator = |
- BreakIterator::UnpackBreakIterator(isolate, break_iterator_holder); |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- return *isolate->factory()->NewNumberFromInt(break_iterator->current()); |
-} |
- |
- |
-RUNTIME_FUNCTION(Runtime_BreakIteratorBreakType) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_HANDLE_CHECKED(JSObject, break_iterator_holder, 0); |
- |
- icu::BreakIterator* break_iterator = |
- BreakIterator::UnpackBreakIterator(isolate, break_iterator_holder); |
- if (!break_iterator) return isolate->ThrowIllegalOperation(); |
- |
- // TODO(cira): Remove cast once ICU fixes base BreakIterator class. |
- icu::RuleBasedBreakIterator* rule_based_iterator = |
- static_cast<icu::RuleBasedBreakIterator*>(break_iterator); |
- int32_t status = rule_based_iterator->getRuleStatus(); |
- // Keep return values in sync with JavaScript BreakType enum. |
- if (status >= UBRK_WORD_NONE && status < UBRK_WORD_NONE_LIMIT) { |
- return *isolate->factory()->NewStringFromStaticChars("none"); |
- } else if (status >= UBRK_WORD_NUMBER && status < UBRK_WORD_NUMBER_LIMIT) { |
- return *isolate->factory()->number_string(); |
- } else if (status >= UBRK_WORD_LETTER && status < UBRK_WORD_LETTER_LIMIT) { |
- return *isolate->factory()->NewStringFromStaticChars("letter"); |
- } else if (status >= UBRK_WORD_KANA && status < UBRK_WORD_KANA_LIMIT) { |
- return *isolate->factory()->NewStringFromStaticChars("kana"); |
- } else if (status >= UBRK_WORD_IDEO && status < UBRK_WORD_IDEO_LIMIT) { |
- return *isolate->factory()->NewStringFromStaticChars("ideo"); |
- } else { |
- return *isolate->factory()->NewStringFromStaticChars("unknown"); |
- } |
-} |
-#endif // V8_I18N_SUPPORT |
- |
- |
-// Finds the script object from the script data. NOTE: This operation uses |
-// heap traversal to find the function generated for the source position |
-// for the requested break point. For lazily compiled functions several heap |
-// traversals might be required rendering this operation as a rather slow |
-// operation. However for setting break points which is normally done through |
-// some kind of user interaction the performance is not crucial. |
-static Handle<Object> Runtime_GetScriptFromScriptName( |
- Handle<String> script_name) { |
- // Scan the heap for Script objects to find the script with the requested |
- // script data. |
- Handle<Script> script; |
- Factory* factory = script_name->GetIsolate()->factory(); |
- Heap* heap = script_name->GetHeap(); |
- HeapIterator iterator(heap); |
- HeapObject* obj = NULL; |
- while (script.is_null() && ((obj = iterator.next()) != NULL)) { |
- // If a script is found check if it has the script data requested. |
- if (obj->IsScript()) { |
- if (Script::cast(obj)->name()->IsString()) { |
- if (String::cast(Script::cast(obj)->name())->Equals(*script_name)) { |
- script = Handle<Script>(Script::cast(obj)); |
- } |
- } |
- } |
- } |
- |
- // If no script with the requested script data is found return undefined. |
- if (script.is_null()) return factory->undefined_value(); |
- |
- // Return the script found. |
- return Script::GetWrapper(script); |
-} |
- |
- |
-// Get the script object from script data. NOTE: Regarding performance |
-// see the NOTE for GetScriptFromScriptData. |
-// args[0]: script data for the script to find the source for |
-RUNTIME_FUNCTION(Runtime_GetScript) { |
- HandleScope scope(isolate); |
- |
- DCHECK(args.length() == 1); |
- |
- CONVERT_ARG_CHECKED(String, script_name, 0); |
- |
- // Find the requested script. |
- Handle<Object> result = |
- Runtime_GetScriptFromScriptName(Handle<String>(script_name)); |
- return *result; |
-} |
+ // Find the requested script. |
+ Handle<Object> result = |
+ Runtime_GetScriptFromScriptName(Handle<String>(script_name)); |
+ return *result; |
+} |
// Collect the raw data for a stack trace. Returns an array of 4 |
@@ -14679,8 +13481,8 @@ RUNTIME_FUNCTION(Runtime_Abort) { |
SealHandleScope shs(isolate); |
DCHECK(args.length() == 1); |
CONVERT_SMI_ARG_CHECKED(message_id, 0); |
- const char* message = GetBailoutReason( |
- static_cast<BailoutReason>(message_id)); |
+ const char* message = |
+ GetBailoutReason(static_cast<BailoutReason>(message_id)); |
base::OS::PrintError("abort: %s\n", message); |
isolate->PrintStack(stderr); |
base::OS::Abort(); |
@@ -14770,8 +13572,7 @@ RUNTIME_FUNCTION(Runtime_GetFromCache) { |
return cache->get(finger_index + 1); |
} |
- for (int i = finger_index - 2; |
- i >= JSFunctionResultCache::kEntriesIndex; |
+ for (int i = finger_index - 2; i >= JSFunctionResultCache::kEntriesIndex; |
i -= 2) { |
o = cache->get(i); |
if (o == key) { |
@@ -14800,11 +13601,11 @@ RUNTIME_FUNCTION(Runtime_GetFromCache) { |
Handle<Object> value; |
{ |
Handle<JSFunction> factory(JSFunction::cast( |
- cache_handle->get(JSFunctionResultCache::kFactoryIndex))); |
+ cache_handle->get(JSFunctionResultCache::kFactoryIndex))); |
// TODO(antonm): consider passing a receiver when constructing a cache. |
Handle<JSObject> receiver(isolate->global_proxy()); |
// This handle is nor shared, nor used later, so it's safe. |
- Handle<Object> argv[] = { key_handle }; |
+ Handle<Object> argv[] = {key_handle}; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, value, |
Execution::Call(isolate, factory, receiver, arraysize(argv), argv)); |
@@ -14873,10 +13674,9 @@ RUNTIME_FUNCTION(Runtime_MessageGetScript) { |
RUNTIME_FUNCTION(Runtime_ListNatives) { |
HandleScope scope(isolate); |
DCHECK(args.length() == 0); |
-#define COUNT_ENTRY(Name, argc, ressize) + 1 |
- int entry_count = 0 |
- RUNTIME_FUNCTION_LIST(COUNT_ENTRY) |
- INLINE_FUNCTION_LIST(COUNT_ENTRY) |
+#define COUNT_ENTRY(Name, argc, ressize) +1 |
+ int entry_count = |
+ 0 RUNTIME_FUNCTION_LIST(COUNT_ENTRY) INLINE_FUNCTION_LIST(COUNT_ENTRY) |
INLINE_OPTIMIZED_FUNCTION_LIST(COUNT_ENTRY); |
#undef COUNT_ENTRY |
Factory* factory = isolate->factory(); |
@@ -14918,10 +13718,10 @@ RUNTIME_FUNCTION(Runtime_IS_VAR) { |
} |
-#define ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(Name) \ |
- RUNTIME_FUNCTION(Runtime_Has##Name) { \ |
- CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
- return isolate->heap()->ToBoolean(obj->Has##Name()); \ |
+#define ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(Name) \ |
+ RUNTIME_FUNCTION(Runtime_Has##Name) { \ |
+ CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
+ return isolate->heap()->ToBoolean(obj->Has##Name()); \ |
} |
ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(FastSmiElements) |
@@ -14938,10 +13738,10 @@ ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(FastProperties) |
#undef ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION |
-#define TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION(Type, type, TYPE, ctype, size) \ |
- RUNTIME_FUNCTION(Runtime_HasExternal##Type##Elements) { \ |
- CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
- return isolate->heap()->ToBoolean(obj->HasExternal##Type##Elements()); \ |
+#define TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION(Type, type, TYPE, ctype, size) \ |
+ RUNTIME_FUNCTION(Runtime_HasExternal##Type##Elements) { \ |
+ CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
+ return isolate->heap()->ToBoolean(obj->HasExternal##Type##Elements()); \ |
} |
TYPED_ARRAYS(TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION) |
@@ -14949,10 +13749,10 @@ TYPED_ARRAYS(TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION) |
#undef TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION |
-#define FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION(Type, type, TYPE, ctype, s) \ |
- RUNTIME_FUNCTION(Runtime_HasFixed##Type##Elements) { \ |
- CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
- return isolate->heap()->ToBoolean(obj->HasFixed##Type##Elements()); \ |
+#define FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION(Type, type, TYPE, ctype, s) \ |
+ RUNTIME_FUNCTION(Runtime_HasFixed##Type##Elements) { \ |
+ CONVERT_ARG_CHECKED(JSObject, obj, 0); \ |
+ return isolate->heap()->ToBoolean(obj->HasFixed##Type##Elements()); \ |
} |
TYPED_ARRAYS(FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION) |
@@ -15105,9 +13905,9 @@ RUNTIME_FUNCTION(Runtime_GetObjectContextNotifierPerformChange) { |
static Object* ArrayConstructorCommon(Isolate* isolate, |
- Handle<JSFunction> constructor, |
- Handle<AllocationSite> site, |
- Arguments* caller_args) { |
+ Handle<JSFunction> constructor, |
+ Handle<AllocationSite> site, |
+ Arguments* caller_args) { |
Factory* factory = isolate->factory(); |
bool holey = false; |
@@ -15171,8 +13971,7 @@ static Object* ArrayConstructorCommon(Isolate* isolate, |
RETURN_FAILURE_ON_EXCEPTION( |
isolate, ArrayConstructInitializeElements(array, caller_args)); |
if (!site.is_null() && |
- (old_kind != array->GetElementsKind() || |
- !can_use_type_feedback)) { |
+ (old_kind != array->GetElementsKind() || !can_use_type_feedback)) { |
// The arguments passed in caused a transition. This kind of complexity |
// can't be dealt with in the inlined hydrogen array constructor case. |
// We must mark the allocationsite as un-inlinable. |
@@ -15193,9 +13992,8 @@ RUNTIME_FUNCTION(Runtime_ArrayConstructor) { |
bool no_caller_args = args.length() == 2; |
DCHECK(no_caller_args || args.length() == 4); |
int parameters_start = no_caller_args ? 0 : 1; |
- Arguments* caller_args = no_caller_args |
- ? &empty_args |
- : reinterpret_cast<Arguments*>(args[0]); |
+ Arguments* caller_args = |
+ no_caller_args ? &empty_args : reinterpret_cast<Arguments*>(args[0]); |
CONVERT_ARG_HANDLE_CHECKED(JSFunction, constructor, parameters_start); |
CONVERT_ARG_HANDLE_CHECKED(Object, type_info, parameters_start + 1); |
#ifdef DEBUG |
@@ -15212,10 +14010,7 @@ RUNTIME_FUNCTION(Runtime_ArrayConstructor) { |
DCHECK(!site->SitePointsToLiteral()); |
} |
- return ArrayConstructorCommon(isolate, |
- constructor, |
- site, |
- caller_args); |
+ return ArrayConstructorCommon(isolate, constructor, site, caller_args); |
} |
@@ -15225,9 +14020,8 @@ RUNTIME_FUNCTION(Runtime_InternalArrayConstructor) { |
bool no_caller_args = args.length() == 1; |
DCHECK(no_caller_args || args.length() == 3); |
int parameters_start = no_caller_args ? 0 : 1; |
- Arguments* caller_args = no_caller_args |
- ? &empty_args |
- : reinterpret_cast<Arguments*>(args[0]); |
+ Arguments* caller_args = |
+ no_caller_args ? &empty_args : reinterpret_cast<Arguments*>(args[0]); |
CONVERT_ARG_HANDLE_CHECKED(JSFunction, constructor, parameters_start); |
#ifdef DEBUG |
if (!no_caller_args) { |
@@ -15235,10 +14029,8 @@ RUNTIME_FUNCTION(Runtime_InternalArrayConstructor) { |
DCHECK(arg_count == caller_args->length()); |
} |
#endif |
- return ArrayConstructorCommon(isolate, |
- constructor, |
- Handle<AllocationSite>::null(), |
- caller_args); |
+ return ArrayConstructorCommon(isolate, constructor, |
+ Handle<AllocationSite>::null(), caller_args); |
} |
@@ -15700,11 +14492,8 @@ RUNTIME_FUNCTION(RuntimeReference_DebugIsActive) { |
static const Runtime::Function kIntrinsicFunctions[] = { |
- RUNTIME_FUNCTION_LIST(F) |
- INLINE_OPTIMIZED_FUNCTION_LIST(F) |
- INLINE_FUNCTION_LIST(I) |
- INLINE_OPTIMIZED_FUNCTION_LIST(IO) |
-}; |
+ RUNTIME_FUNCTION_LIST(F) INLINE_OPTIMIZED_FUNCTION_LIST(F) |
+ INLINE_FUNCTION_LIST(I) INLINE_OPTIMIZED_FUNCTION_LIST(IO)}; |
#undef IO |
#undef I |
@@ -15719,8 +14508,7 @@ void Runtime::InitializeIntrinsicFunctionNames(Isolate* isolate, |
const char* name = kIntrinsicFunctions[i].name; |
if (name == NULL) continue; |
Handle<NameDictionary> new_dict = NameDictionary::Add( |
- dict, |
- isolate->factory()->InternalizeUtf8String(name), |
+ dict, isolate->factory()->InternalizeUtf8String(name), |
Handle<Smi>(Smi::FromInt(i), isolate), |
PropertyDetails(NONE, NORMAL, Representation::None())); |
// The dictionary does not need to grow. |
@@ -15754,5 +14542,5 @@ const Runtime::Function* Runtime::FunctionForEntry(Address entry) { |
const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { |
return &(kIntrinsicFunctions[static_cast<int>(id)]); |
} |
- |
-} } // namespace v8::internal |
+} |
+} // namespace v8::internal |