| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 94364997c4e4cbbab591a5de3492852d8b8981d1..aab918e231badf963241cf7e08c564180bdb5e86 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -1540,11 +1540,6 @@ void HeapObject::HeapObjectShortPrint(StringStream* accumulator) {
|
| HeapNumber::cast(this)->HeapNumberPrint(accumulator);
|
| accumulator->Put('>');
|
| break;
|
| - case MUTABLE_HEAP_NUMBER_TYPE:
|
| - accumulator->Add("<MutableNumber: ");
|
| - HeapNumber::cast(this)->HeapNumberPrint(accumulator);
|
| - accumulator->Put('>');
|
| - break;
|
| case JS_PROXY_TYPE:
|
| accumulator->Add("<JSProxy>");
|
| break;
|
| @@ -1670,7 +1665,6 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
|
| break;
|
|
|
| case HEAP_NUMBER_TYPE:
|
| - case MUTABLE_HEAP_NUMBER_TYPE:
|
| case FILLER_TYPE:
|
| case BYTE_ARRAY_TYPE:
|
| case FREE_SPACE_TYPE:
|
| @@ -1712,7 +1706,7 @@ bool HeapNumber::HeapNumberBooleanValue() {
|
|
|
|
|
| void HeapNumber::HeapNumberPrint(FILE* out) {
|
| - PrintF(out, "%.16g", value());
|
| + PrintF(out, "%.16g", Number());
|
| }
|
|
|
|
|
| @@ -1724,7 +1718,7 @@ void HeapNumber::HeapNumberPrint(StringStream* accumulator) {
|
| // print that using vsnprintf (which may truncate but never allocate if
|
| // there is no more space in the buffer).
|
| EmbeddedVector<char, 100> buffer;
|
| - SNPrintF(buffer, "%.16g", value());
|
| + SNPrintF(buffer, "%.16g", Number());
|
| accumulator->Add("%s", buffer.start());
|
| }
|
|
|
| @@ -2076,8 +2070,8 @@ bool Map::InstancesNeedRewriting(Map* target,
|
| DescriptorArray* new_desc = target->instance_descriptors();
|
| int limit = NumberOfOwnDescriptors();
|
| for (int i = 0; i < limit; i++) {
|
| - if (new_desc->GetDetails(i).representation().IsDouble() !=
|
| - old_desc->GetDetails(i).representation().IsDouble()) {
|
| + if (new_desc->GetDetails(i).representation().IsDouble() &&
|
| + !old_desc->GetDetails(i).representation().IsDouble()) {
|
| return true;
|
| }
|
| }
|
| @@ -2174,7 +2168,7 @@ void JSObject::MigrateFastToFast(Handle<JSObject> object, Handle<Map> new_map) {
|
| PropertyDetails details = new_map->GetLastDescriptorDetails();
|
| Handle<Object> value;
|
| if (details.representation().IsDouble()) {
|
| - value = isolate->factory()->NewHeapNumber(0, MUTABLE);
|
| + value = isolate->factory()->NewHeapNumber(0);
|
| } else {
|
| value = isolate->factory()->uninitialized_value();
|
| }
|
| @@ -2222,9 +2216,6 @@ void JSObject::MigrateFastToFast(Handle<JSObject> object, Handle<Map> new_map) {
|
| value = handle(Smi::FromInt(0), isolate);
|
| }
|
| value = Object::NewStorageFor(isolate, value, details.representation());
|
| - } else if (old_details.representation().IsDouble() &&
|
| - !details.representation().IsDouble()) {
|
| - value = Object::WrapForRead(isolate, value, old_details.representation());
|
| }
|
| ASSERT(!(details.representation().IsDouble() && value->IsSmi()));
|
| int target_index = new_descriptors->GetFieldIndex(i) - inobject;
|
| @@ -2237,7 +2228,7 @@ void JSObject::MigrateFastToFast(Handle<JSObject> object, Handle<Map> new_map) {
|
| if (details.type() != FIELD) continue;
|
| Handle<Object> value;
|
| if (details.representation().IsDouble()) {
|
| - value = isolate->factory()->NewHeapNumber(0, MUTABLE);
|
| + value = isolate->factory()->NewHeapNumber(0);
|
| } else {
|
| value = isolate->factory()->uninitialized_value();
|
| }
|
| @@ -3984,7 +3975,6 @@ void JSObject::WriteToField(int descriptor, Object* value) {
|
| // Nothing more to be done.
|
| if (value->IsUninitialized()) return;
|
| HeapNumber* box = HeapNumber::cast(RawFastPropertyAt(index));
|
| - ASSERT(box->IsMutableHeapNumber());
|
| box->set_value(value->Number());
|
| } else {
|
| FastPropertyAtPut(index, value);
|
| @@ -4632,11 +4622,6 @@ void JSObject::MigrateFastToSlow(Handle<JSObject> object,
|
| FieldIndex index = FieldIndex::ForDescriptor(*map, i);
|
| Handle<Object> value(
|
| object->RawFastPropertyAt(index), isolate);
|
| - if (details.representation().IsDouble()) {
|
| - ASSERT(value->IsMutableHeapNumber());
|
| - Handle<HeapNumber> old = Handle<HeapNumber>::cast(value);
|
| - value = isolate->factory()->NewHeapNumber(old->value());
|
| - }
|
| PropertyDetails d =
|
| PropertyDetails(details.attributes(), NORMAL, i + 1);
|
| dictionary = NameDictionary::Add(dictionary, key, value, d);
|
| @@ -5809,7 +5794,7 @@ Handle<Object> JSObject::FastPropertyAt(Handle<JSObject> object,
|
| FieldIndex index) {
|
| Isolate* isolate = object->GetIsolate();
|
| Handle<Object> raw_value(object->RawFastPropertyAt(index), isolate);
|
| - return Object::WrapForRead(isolate, raw_value, representation);
|
| + return Object::NewStorageFor(isolate, raw_value, representation);
|
| }
|
|
|
|
|
| @@ -7000,7 +6985,7 @@ Object* JSObject::SlowReverseLookup(Object* value) {
|
| Object* property =
|
| RawFastPropertyAt(FieldIndex::ForDescriptor(map(), i));
|
| if (descs->GetDetails(i).representation().IsDouble()) {
|
| - ASSERT(property->IsMutableHeapNumber());
|
| + ASSERT(property->IsHeapNumber());
|
| if (value->IsNumber() && property->Number() == value->Number()) {
|
| return descs->GetKey(i);
|
| }
|
|
|