Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index a824b3b25479fe911bd9afb7ee528cc4ac40a564..8b290be70d9700730d991bae2ddbea9afad1f8a7 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -1950,7 +1950,8 @@ void JSObject::SetMapAndElements(Handle<JSObject> object, |
Handle<FixedArrayBase> value) { |
JSObject::MigrateToMap(object, new_map); |
DCHECK((object->map()->has_fast_smi_or_object_elements() || |
- (*value == object->GetHeap()->empty_fixed_array())) == |
+ (*value == object->GetHeap()->empty_fixed_array()) || |
+ object->map()->has_fast_string_wrapper_elements()) == |
(value->map() == object->GetHeap()->fixed_array_map() || |
value->map() == object->GetHeap()->fixed_cow_array_map())); |
DCHECK((*value == object->GetHeap()->empty_fixed_array()) || |
@@ -2332,19 +2333,6 @@ bool Object::ToArrayIndex(uint32_t* index) { |
} |
-bool Object::IsStringObjectWithCharacterAt(uint32_t index) { |
- if (!this->IsJSValue()) return false; |
- |
- JSValue* js_value = JSValue::cast(this); |
- if (!js_value->value()->IsString()) return false; |
- |
- String* str = String::cast(js_value->value()); |
- if (index >= static_cast<uint32_t>(str->length())) return false; |
- |
- return true; |
-} |
- |
- |
void Object::VerifyApiCallResultType() { |
#if DEBUG |
if (!(IsSmi() || IsString() || IsSymbol() || IsJSReceiver() || |
@@ -2361,9 +2349,8 @@ Object* FixedArray::get(int index) const { |
return READ_FIELD(this, kHeaderSize + index * kPointerSize); |
} |
- |
-Handle<Object> FixedArray::get(Handle<FixedArray> array, int index) { |
- return handle(array->get(index), array->GetIsolate()); |
+Handle<Object> FixedArray::get(FixedArray* array, int index, Isolate* isolate) { |
+ return handle(array->get(index), isolate); |
} |
@@ -2408,13 +2395,12 @@ uint64_t FixedDoubleArray::get_representation(int index) { |
return READ_UINT64_FIELD(this, offset); |
} |
- |
-Handle<Object> FixedDoubleArray::get(Handle<FixedDoubleArray> array, |
- int index) { |
+Handle<Object> FixedDoubleArray::get(FixedDoubleArray* array, int index, |
+ Isolate* isolate) { |
if (array->is_the_hole(index)) { |
- return array->GetIsolate()->factory()->the_hole_value(); |
+ return isolate->factory()->the_hole_value(); |
} else { |
- return array->GetIsolate()->factory()->NewNumber(array->get_scalar(index)); |
+ return isolate->factory()->NewNumber(array->get_scalar(index)); |
} |
} |
@@ -2871,8 +2857,7 @@ void Map::SetEnumLength(int length) { |
FixedArrayBase* Map::GetInitialElements() { |
- if (has_fast_smi_or_object_elements() || |
- has_fast_double_elements()) { |
+ if (has_fast_elements() || has_fast_string_wrapper_elements()) { |
DCHECK(!GetHeap()->InNewSpace(GetHeap()->empty_fixed_array())); |
return GetHeap()->empty_fixed_array(); |
} else if (has_fixed_typed_array_elements()) { |
@@ -4218,11 +4203,9 @@ double FixedTypedArray<Float64ArrayTraits>::from_double(double value) { |
return value; |
} |
- |
template <class Traits> |
-Handle<Object> FixedTypedArray<Traits>::get( |
- Handle<FixedTypedArray<Traits> > array, |
- int index) { |
+Handle<Object> FixedTypedArray<Traits>::get(FixedTypedArray<Traits>* array, |
+ int index) { |
return Traits::ToHandle(array->GetIsolate(), array->get_scalar(index)); |
} |
@@ -4599,6 +4582,10 @@ bool Map::has_sloppy_arguments_elements() { |
return IsSloppyArgumentsElements(elements_kind()); |
} |
+bool Map::has_fast_string_wrapper_elements() { |
+ return elements_kind() == FAST_STRING_WRAPPER_ELEMENTS; |
+} |
+ |
bool Map::has_fixed_typed_array_elements() { |
return IsFixedTypedArrayElementsKind(elements_kind()); |
} |
@@ -6722,6 +6709,17 @@ bool JSObject::HasSloppyArgumentsElements() { |
return IsSloppyArgumentsElements(GetElementsKind()); |
} |
+bool JSObject::HasStringWrapperElements() { |
+ return IsStringWrapperElementsKind(GetElementsKind()); |
+} |
+ |
+bool JSObject::HasFastStringWrapperElements() { |
+ return GetElementsKind() == FAST_STRING_WRAPPER_ELEMENTS; |
+} |
+ |
+bool JSObject::HasSlowStringWrapperElements() { |
+ return GetElementsKind() == SLOW_STRING_WRAPPER_ELEMENTS; |
+} |
bool JSObject::HasFixedTypedArrayElements() { |
HeapObject* array = elements(); |