From fa70f154b71a71ec408942be0482edd13a0effc8 Mon Sep 17 00:00:00 2001 From: "verwaest@chromium.org" Date: Tue, 26 Aug 2014 16:32:51 +0000 Subject: [PATCH] Remove dead code from LookupResult BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/504183002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- BUILD.gn | 1 - src/bootstrapper.cc | 5 +- src/code-stubs.cc | 7 ++ src/code-stubs.h | 2 + src/field-index.cc | 23 ----- src/field-index.h | 1 - src/heap-snapshot-generator.cc | 3 +- src/hydrogen.cc | 11 +-- src/hydrogen.h | 1 - src/isolate.cc | 1 + src/lookup.cc | 3 - src/mirror-debugger.js | 13 ++- src/objects-printer.cc | 6 -- src/objects.cc | 8 +- src/property-details.h | 27 +++--- src/property.cc | 21 ----- src/property.h | 148 ++------------------------------- src/runtime.cc | 12 +-- test/cctest/test-debug.cc | 4 - tools/gyp/v8.gyp | 1 - 20 files changed, 47 insertions(+), 251 deletions(-) delete mode 100644 src/field-index.cc diff --git a/BUILD.gn b/BUILD.gn index a93e31d8b..fd4c9d81a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -606,7 +606,6 @@ source_set("v8_base") { "src/fast-dtoa.cc", "src/fast-dtoa.h", "src/feedback-slots.h", - "src/field-index.cc", "src/field-index.h", "src/field-index-inl.h", "src/fixed-dtoa.cc", diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index 45d2f1434..59f966722 100644 --- a/src/bootstrapper.cc +++ b/src/bootstrapper.cc @@ -2497,11 +2497,8 @@ void Genesis::TransferNamedProperties(Handle from, JSObject::SetNormalizedProperty(to, key, callbacks, d); break; } + // Do not occur since the from object has fast properties. case NORMAL: - // Do not occur since the from object has fast properties. - case HANDLER: - case INTERCEPTOR: - // No element in instance descriptors have proxy or interceptor type. UNREACHABLE(); break; } diff --git a/src/code-stubs.cc b/src/code-stubs.cc index fc5fdef96..e347c1393 100644 --- a/src/code-stubs.cc +++ b/src/code-stubs.cc @@ -994,6 +994,13 @@ void StoreFieldStub::InstallDescriptors(Isolate* isolate) { } +// static +void LoadFastElementStub::InstallDescriptors(Isolate* isolate) { + LoadFastElementStub stub(isolate, true, FAST_ELEMENTS); + InstallDescriptor(isolate, &stub); +} + + ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate) : PlatformCodeStub(isolate) { minor_key_ = ArgumentCountBits::encode(ANY); diff --git a/src/code-stubs.h b/src/code-stubs.h index dea29dcbc..85314d0d3 100644 --- a/src/code-stubs.h +++ b/src/code-stubs.h @@ -2114,6 +2114,8 @@ class LoadFastElementStub : public HydrogenCodeStub { virtual Handle GenerateCode() V8_OVERRIDE; + static void InstallDescriptors(Isolate* isolate); + virtual void InitializeInterfaceDescriptor( CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE; diff --git a/src/field-index.cc b/src/field-index.cc deleted file mode 100644 index 5392afc9f..000000000 --- a/src/field-index.cc +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "src/v8.h" - -#include "src/field-index.h" -#include "src/objects.h" -#include "src/objects-inl.h" - -namespace v8 { -namespace internal { - - -FieldIndex FieldIndex::ForLookupResult(const LookupResult* lookup_result) { - Map* map = lookup_result->holder()->map(); - return ForPropertyIndex(map, - lookup_result->GetFieldIndexFromMap(map), - lookup_result->representation().IsDouble()); -} - - -} } // namespace v8::internal diff --git a/src/field-index.h b/src/field-index.h index 8650c8fb8..78b5db119 100644 --- a/src/field-index.h +++ b/src/field-index.h @@ -23,7 +23,6 @@ class FieldIndex V8_FINAL { int index, bool is_double = false); static FieldIndex ForInObjectOffset(int offset, Map* map = NULL); - static FieldIndex ForLookupResult(const LookupResult* result); static FieldIndex ForDescriptor(Map* map, int descriptor_index); static FieldIndex ForLoadByFieldIndex(Map* map, int index); static FieldIndex ForKeyedLookupCacheIndex(Map* map, int index); diff --git a/src/heap-snapshot-generator.cc b/src/heap-snapshot-generator.cc index 50fdec555..c32870319 100644 --- a/src/heap-snapshot-generator.cc +++ b/src/heap-snapshot-generator.cc @@ -1697,8 +1697,7 @@ void V8HeapExplorer::ExtractPropertyReferences(JSObject* js_obj, int entry) { descs->GetKey(i), descs->GetValue(i)); break; case NORMAL: // only in slow mode - case HANDLER: // only in lookup results, not in descriptors - case INTERCEPTOR: // only in lookup results, not in descriptors + UNREACHABLE(); break; } } diff --git a/src/hydrogen.cc b/src/hydrogen.cc index b43dc51d1..dd237715c 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -5790,8 +5790,8 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadNamedField( PropertyAccessInfo* info, HValue* checked_object) { // See if this is a load for an immutable property - if (checked_object->ActualValue()->IsConstant() && info->IsCacheable() && - info->IsReadOnly() && !info->IsConfigurable()) { + if (checked_object->ActualValue()->IsConstant() && info->IsReadOnly() && + !info->IsConfigurable()) { Handle object( HConstant::cast(checked_object->ActualValue())->handle(isolate())); @@ -5970,7 +5970,7 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::LookupDescriptor() { bool HOptimizedGraphBuilder::PropertyAccessInfo::LoadResult(Handle map) { - if (!IsLoad() && IsProperty() && (IsReadOnly() || !IsCacheable())) { + if (!IsLoad() && IsProperty() && IsReadOnly()) { return false; } @@ -6074,10 +6074,7 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessMonomorphic() { return IsLoad(); } if (!LookupDescriptor()) return false; - if (IsFound()) { - if (IsLoad()) return true; - return !IsReadOnly() && IsCacheable(); - } + if (IsFound()) return IsLoad() || !IsReadOnly(); if (!LookupInPrototypes()) return false; if (IsLoad()) return true; diff --git a/src/hydrogen.h b/src/hydrogen.h index 158322ffb..8e084ded9 100644 --- a/src/hydrogen.h +++ b/src/hydrogen.h @@ -2512,7 +2512,6 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor { bool IsConfigurable() const { return lookup_.IsConfigurable(); } bool IsReadOnly() const { return lookup_.IsReadOnly(); } - bool IsCacheable() const { return lookup_.IsCacheable(); } private: Handle GetAccessorsFromMap(Handle map) const { diff --git a/src/isolate.cc b/src/isolate.cc index 95c5290c9..9b13982de 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -2053,6 +2053,7 @@ bool Isolate::Init(Deserializer* des) { RegExpConstructResultStub::InstallDescriptors(this); KeyedLoadGenericStub::InstallDescriptors(this); StoreFieldStub::InstallDescriptors(this); + LoadFastElementStub::InstallDescriptors(this); } CallDescriptors::InitializeForIsolate(this); diff --git a/src/lookup.cc b/src/lookup.cc index 5bce620ab..3b11ebce7 100644 --- a/src/lookup.cc +++ b/src/lookup.cc @@ -119,9 +119,6 @@ void LookupIterator::LoadPropertyKind() { case v8::internal::CALLBACKS: property_kind_ = ACCESSOR; break; - case v8::internal::HANDLER: - case v8::internal::INTERCEPTOR: - UNREACHABLE(); } } diff --git a/src/mirror-debugger.js b/src/mirror-debugger.js index b30586028..b13b3fa8b 100644 --- a/src/mirror-debugger.js +++ b/src/mirror-debugger.js @@ -177,8 +177,6 @@ PropertyType.Normal = 0; PropertyType.Field = 1; PropertyType.Constant = 2; PropertyType.Callbacks = 3; -PropertyType.Handler = 4; -PropertyType.Interceptor = 5; // Different attributes for a property. @@ -1367,10 +1365,11 @@ function PropertyMirror(mirror, name, details) { this.name_ = name; this.value_ = details[0]; this.details_ = details[1]; - if (details.length > 2) { - this.exception_ = details[2]; - this.getter_ = details[3]; - this.setter_ = details[4]; + this.is_interceptor_ = details[2]; + if (details.length > 3) { + this.exception_ = details[3]; + this.getter_ = details[4]; + this.setter_ = details[5]; } } inherits(PropertyMirror, Mirror); @@ -1488,7 +1487,7 @@ PropertyMirror.prototype.setter = function() { * UndefinedMirror if there is no setter for this property */ PropertyMirror.prototype.isNative = function() { - return (this.propertyType() == PropertyType.Interceptor) || + return this.is_interceptor_ || ((this.propertyType() == PropertyType.Callbacks) && !this.hasGetter() && !this.hasSetter()); }; diff --git a/src/objects-printer.cc b/src/objects-printer.cc index 3d2916493..617a8f22a 100644 --- a/src/objects-printer.cc +++ b/src/objects-printer.cc @@ -240,8 +240,6 @@ void JSObject::PrintProperties(OStream& os) { // NOLINT os << Brief(descs->GetCallbacksObject(i)) << " (callback)\n"; break; case NORMAL: // only in slow mode - case HANDLER: // only in lookup results, not in descriptors - case INTERCEPTOR: // only in lookup results, not in descriptors UNREACHABLE(); break; } @@ -373,8 +371,6 @@ void JSObject::PrintTransitions(OStream& os) { // NOLINT break; // Values below are never in the target descriptor array. case NORMAL: - case HANDLER: - case INTERCEPTOR: UNREACHABLE(); break; } @@ -1102,8 +1098,6 @@ void TransitionArray::PrintTransitions(OStream& os) { // NOLINT break; // Values below are never in the target descriptor array. case NORMAL: - case HANDLER: - case INTERCEPTOR: UNREACHABLE(); break; } diff --git a/src/objects.cc b/src/objects.cc index 3f1bdc6d3..7a4c6f5e8 100644 --- a/src/objects.cc +++ b/src/objects.cc @@ -2775,8 +2775,6 @@ MaybeHandle Map::TryUpdateInternal(Handle old_map) { break; case NORMAL: - case HANDLER: - case INTERCEPTOR: UNREACHABLE(); } } @@ -4230,9 +4228,6 @@ void JSObject::MigrateFastToSlow(Handle object, dictionary = NameDictionary::Add(dictionary, key, value, d); break; } - case INTERCEPTOR: - break; - case HANDLER: case NORMAL: UNREACHABLE(); break; @@ -6737,8 +6732,7 @@ bool DescriptorArray::CanHoldValue(int descriptor, Object* value) { return false; case NORMAL: - case INTERCEPTOR: - case HANDLER: + UNREACHABLE(); break; } diff --git a/src/property-details.h b/src/property-details.h index ee0dc02c0..f75bcff04 100644 --- a/src/property-details.h +++ b/src/property-details.h @@ -50,10 +50,7 @@ enum PropertyType { // Only in fast mode. FIELD = 1, CONSTANT = 2, - CALLBACKS = 3, - // Only in lookup results, not in descriptors. - HANDLER = 4, - INTERCEPTOR = 5 + CALLBACKS = 3 }; @@ -264,22 +261,22 @@ class PropertyDetails BASE_EMBEDDED { // Bit fields in value_ (type, shift, size). Must be public so the // constants can be embedded in generated code. - class TypeField: public BitField {}; - class AttributesField: public BitField {}; + class TypeField : public BitField {}; + class AttributesField : public BitField {}; // Bit fields for normalized objects. - class DeletedField: public BitField {}; - class DictionaryStorageField: public BitField {}; + class DeletedField : public BitField {}; + class DictionaryStorageField : public BitField {}; // Bit fields for fast objects. - class RepresentationField: public BitField {}; - class DescriptorPointer: public BitField {}; // NOLINT - class FieldIndexField: public BitField {}; // NOLINT + class RepresentationField : public BitField {}; + class DescriptorPointer + : public BitField {}; // NOLINT + class FieldIndexField + : public BitField {}; // NOLINT // All bits for fast objects must fix in a smi. - STATIC_ASSERT(10 + kDescriptorIndexBitCount + kDescriptorIndexBitCount <= 31); + STATIC_ASSERT(9 + kDescriptorIndexBitCount + kDescriptorIndexBitCount <= 31); static const int kInitialIndex = 1; diff --git a/src/property.cc b/src/property.cc index 0cad6ed02..efb58a28c 100644 --- a/src/property.cc +++ b/src/property.cc @@ -24,30 +24,9 @@ OStream& operator<<(OStream& os, const LookupResult& r) { if (!r.IsFound()) return os << "Not Found\n"; os << "LookupResult:\n"; - os << " -cacheable = " << (r.IsCacheable() ? "true" : "false") << "\n"; - os << " -attributes = " << hex << r.GetAttributes() << dec << "\n"; if (r.IsTransition()) { os << " -transition target:\n" << Brief(r.GetTransitionTarget()) << "\n"; } - switch (r.type()) { - case NORMAL: - return os << " -type = normal\n" - << " -entry = " << r.GetDictionaryEntry() << "\n"; - case CONSTANT: - return os << " -type = constant\n"; - case FIELD: - os << " -type = field\n" - << " -index = " << r.GetFieldIndex().property_index() << "\n" - << " -field type:"; - r.GetFieldType()->PrintTo(os); - return os << "\n"; - case CALLBACKS: - return os << " -type = call backs\n"; - case HANDLER: - return os << " -type = lookup proxy\n"; - case INTERCEPTOR: - return os << " -type = lookup interceptor\n"; - } return os; } diff --git a/src/property.h b/src/property.h index f64f9df84..21bc2fcb9 100644 --- a/src/property.h +++ b/src/property.h @@ -119,7 +119,6 @@ class LookupResult V8_FINAL BASE_EMBEDDED { lookup_type_(NOT_FOUND), holder_(NULL), transition_(NULL), - cacheable_(true), details_(NONE, NORMAL, Representation::None()) { isolate->set_top_lookup_result(this); } @@ -139,30 +138,6 @@ class LookupResult V8_FINAL BASE_EMBEDDED { number_ = number; } - bool CanHoldValue(Handle value) const { - switch (type()) { - case NORMAL: - return true; - case FIELD: - return value->FitsRepresentation(representation()) && - GetFieldType()->NowContains(value); - case CONSTANT: { - Map* map = - lookup_type_ == DESCRIPTOR_TYPE ? holder_->map() : transition_; - Object* constant = GetConstantFromMap(map); - DCHECK(constant != *value || - value->FitsRepresentation(representation())); - return constant == *value; - } - case CALLBACKS: - case HANDLER: - case INTERCEPTOR: - return true; - } - UNREACHABLE(); - return true; - } - void TransitionResult(JSObject* holder, Map* target) { lookup_type_ = TRANSITION_TYPE; number_ = target->LastAdded(); @@ -171,29 +146,6 @@ class LookupResult V8_FINAL BASE_EMBEDDED { transition_ = target; } - void DictionaryResult(JSObject* holder, int entry) { - lookup_type_ = DICTIONARY_TYPE; - holder_ = holder; - transition_ = NULL; - details_ = holder->property_dictionary()->DetailsAt(entry); - number_ = entry; - } - - void HandlerResult(JSProxy* proxy) { - lookup_type_ = HANDLER_TYPE; - holder_ = proxy; - transition_ = NULL; - details_ = PropertyDetails(NONE, HANDLER, Representation::Tagged()); - cacheable_ = false; - } - - void InterceptorResult(JSObject* holder) { - lookup_type_ = INTERCEPTOR_TYPE; - holder_ = holder; - transition_ = NULL; - details_ = PropertyDetails(NONE, INTERCEPTOR, Representation::Tagged()); - } - void NotFound() { lookup_type_ = NOT_FOUND; details_ = PropertyDetails(NONE, NORMAL, Representation::None()); @@ -201,40 +153,11 @@ class LookupResult V8_FINAL BASE_EMBEDDED { transition_ = NULL; } - JSObject* holder() const { - DCHECK(IsFound()); - return JSObject::cast(holder_); - } - - JSProxy* proxy() const { - DCHECK(IsHandler()); - return JSProxy::cast(holder_); - } - - PropertyType type() const { - DCHECK(IsFound()); - return details_.type(); - } - Representation representation() const { DCHECK(IsFound()); return details_.representation(); } - PropertyAttributes GetAttributes() const { - DCHECK(IsFound()); - return details_.attributes(); - } - - PropertyDetails GetPropertyDetails() const { - return details_; - } - - bool IsFastPropertyType() const { - DCHECK(IsFound()); - return IsTransition() || type() != NORMAL; - } - // Property callbacks does not include transitions to callbacks. bool IsPropertyCallbacks() const { DCHECK(!(details_.type() == CALLBACKS && !IsFound())); @@ -248,36 +171,23 @@ class LookupResult V8_FINAL BASE_EMBEDDED { bool IsField() const { DCHECK(!(details_.type() == FIELD && !IsFound())); - return IsDescriptorOrDictionary() && type() == FIELD; - } - - bool IsNormal() const { - return IsFound() && IsDescriptorOrDictionary() && type() == NORMAL; + return lookup_type_ == DESCRIPTOR_TYPE && details_.type() == FIELD; } bool IsConstant() const { DCHECK(!(details_.type() == CONSTANT && !IsFound())); - return IsDescriptorOrDictionary() && type() == CONSTANT; + return lookup_type_ == DESCRIPTOR_TYPE && details_.type() == CONSTANT; } bool IsConfigurable() const { return details_.IsConfigurable(); } - bool IsDontEnum() const { return details_.IsDontEnum(); } bool IsFound() const { return lookup_type_ != NOT_FOUND; } - bool IsDescriptorOrDictionary() const { - return lookup_type_ == DESCRIPTOR_TYPE || lookup_type_ == DICTIONARY_TYPE; - } bool IsTransition() const { return lookup_type_ == TRANSITION_TYPE; } - bool IsHandler() const { return lookup_type_ == HANDLER_TYPE; } - bool IsInterceptor() const { return lookup_type_ == INTERCEPTOR_TYPE; } // Is the result is a property excluding transitions and the null descriptor? bool IsProperty() const { return IsFound() && !IsTransition(); } - bool IsCacheable() const { return cacheable_; } - void DisallowCaching() { cacheable_ = false; } - Map* GetTransitionTarget() const { DCHECK(IsTransition()); return transition_; @@ -287,32 +197,12 @@ class LookupResult V8_FINAL BASE_EMBEDDED { return IsTransition() && details_.type() == FIELD; } - bool IsTransitionToConstant() const { - return IsTransition() && details_.type() == CONSTANT; - } - - int GetDescriptorIndex() const { - DCHECK(lookup_type_ == DESCRIPTOR_TYPE); - return number_; - } - - FieldIndex GetFieldIndex() const { - DCHECK(lookup_type_ == DESCRIPTOR_TYPE || - lookup_type_ == TRANSITION_TYPE); - return FieldIndex::ForLookupResult(this); - } - int GetLocalFieldIndexFromMap(Map* map) const { return GetFieldIndexFromMap(map) - map->inobject_properties(); } - int GetDictionaryEntry() const { - DCHECK(lookup_type_ == DICTIONARY_TYPE); - return number_; - } - Object* GetConstantFromMap(Map* map) const { - DCHECK(type() == CONSTANT); + DCHECK(details_.type() == CONSTANT); return GetValueFromMap(map); } @@ -330,26 +220,12 @@ class LookupResult V8_FINAL BASE_EMBEDDED { return map->instance_descriptors()->GetFieldIndex(number_); } - HeapType* GetFieldType() const { - DCHECK(type() == FIELD); - if (lookup_type_ == DESCRIPTOR_TYPE) { - return GetFieldTypeFromMap(holder()->map()); - } - DCHECK(lookup_type_ == TRANSITION_TYPE); - return GetFieldTypeFromMap(transition_); - } - HeapType* GetFieldTypeFromMap(Map* map) const { - DCHECK(lookup_type_ == DESCRIPTOR_TYPE || - lookup_type_ == TRANSITION_TYPE); + DCHECK_NE(NOT_FOUND, lookup_type_); DCHECK(number_ < map->NumberOfOwnDescriptors()); return map->instance_descriptors()->GetFieldType(number_); } - Map* GetFieldOwner() const { - return GetFieldOwnerFromMap(holder()->map()); - } - Map* GetFieldOwnerFromMap(Map* map) const { DCHECK(lookup_type_ == DESCRIPTOR_TYPE || lookup_type_ == TRANSITION_TYPE); @@ -357,12 +233,6 @@ class LookupResult V8_FINAL BASE_EMBEDDED { return map->FindFieldOwner(number_); } - bool ReceiverIsHolder(Handle receiver) { - if (*receiver == holder()) return true; - if (lookup_type_ == TRANSITION_TYPE) return true; - return false; - } - void Iterate(ObjectVisitor* visitor); private: @@ -370,19 +240,11 @@ class LookupResult V8_FINAL BASE_EMBEDDED { LookupResult* next_; // Where did we find the result; - enum { - NOT_FOUND, - DESCRIPTOR_TYPE, - TRANSITION_TYPE, - DICTIONARY_TYPE, - HANDLER_TYPE, - INTERCEPTOR_TYPE - } lookup_type_; + enum { NOT_FOUND, DESCRIPTOR_TYPE, TRANSITION_TYPE } lookup_type_; JSReceiver* holder_; Map* transition_; int number_; - bool cacheable_; PropertyDetails details_; }; diff --git a/src/runtime.cc b/src/runtime.cc index 0628ce44f..c69882f5a 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -10999,18 +10999,20 @@ RUNTIME_FUNCTION(Runtime_DebugGetPropertyDetails) { // getter and/or setter. bool has_js_accessors = !maybe_pair.is_null() && maybe_pair->IsAccessorPair(); Handle details = - isolate->factory()->NewFixedArray(has_js_accessors ? 5 : 2); + isolate->factory()->NewFixedArray(has_js_accessors ? 6 : 3); details->set(0, *value); // TODO(verwaest): Get rid of this random way of handling interceptors. PropertyDetails d = it.state() == LookupIterator::INTERCEPTOR - ? PropertyDetails(NONE, INTERCEPTOR, 0) + ? PropertyDetails(NONE, NORMAL, 0) : it.property_details(); details->set(1, d.AsSmi()); + details->set( + 2, isolate->heap()->ToBoolean(it.state() == LookupIterator::INTERCEPTOR)); if (has_js_accessors) { AccessorPair* accessors = AccessorPair::cast(*maybe_pair); - details->set(2, isolate->heap()->ToBoolean(has_caught)); - details->set(3, accessors->GetComponent(ACCESSOR_GETTER)); - details->set(4, accessors->GetComponent(ACCESSOR_SETTER)); + details->set(3, isolate->heap()->ToBoolean(has_caught)); + details->set(4, accessors->GetComponent(ACCESSOR_GETTER)); + details->set(5, accessors->GetComponent(ACCESSOR_SETTER)); } return *isolate->factory()->NewJSArrayWithElements(details); diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc index c98d480a4..ba04df966 100644 --- a/test/cctest/test-debug.cc +++ b/test/cctest/test-debug.cc @@ -4383,10 +4383,6 @@ TEST(InterceptorPropertyMirror) { "named_values[%d] instanceof debug.PropertyMirror", i); CHECK(CompileRun(buffer.start())->BooleanValue()); - SNPrintF(buffer, "named_values[%d].propertyType()", i); - CHECK_EQ(v8::internal::INTERCEPTOR, - CompileRun(buffer.start())->Int32Value()); - SNPrintF(buffer, "named_values[%d].isNative()", i); CHECK(CompileRun(buffer.start())->BooleanValue()); } diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp index 5ebfec4ab..978017146 100644 --- a/tools/gyp/v8.gyp +++ b/tools/gyp/v8.gyp @@ -490,7 +490,6 @@ '../../src/fast-dtoa.cc', '../../src/fast-dtoa.h', '../../src/feedback-slots.h', - '../../src/field-index.cc', '../../src/field-index.h', '../../src/field-index-inl.h', '../../src/fixed-dtoa.cc', -- 2.34.1