Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(789)

Unified Diff: src/objects-inl.h

Issue 1612323003: Introduce {FAST,SLOW}_STRING_WRAPPER_ELEMENTS (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
« src/objects.cc ('K') | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698