From dc4c2775897f07ce0269d66acd5cb97241540182 Mon Sep 17 00:00:00 2001 From: "dslomov@chromium.org" Date: Mon, 11 Aug 2014 21:44:08 +0000 Subject: [PATCH] Revert "Add "own" symbols support." This reverts commit r23056 for breaking Mac x64 test. TBR=verwaest@chromium.org Review URL: https://codereview.chromium.org/460803003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/factory.cc | 8 ---- src/factory.h | 1 - src/lookup.h | 13 +---- src/objects-inl.h | 5 -- src/objects-printer.cc | 3 +- src/objects.cc | 11 +---- src/objects.h | 8 ---- src/runtime.cc | 11 ----- src/runtime.h | 1 - test/mjsunit/own-symbols.js | 55 ---------------------- test/mjsunit/runtime-gen/createprivateownsymbol.js | 5 -- tools/generate-runtime-tests.py | 5 +- 12 files changed, 6 insertions(+), 120 deletions(-) delete mode 100644 test/mjsunit/own-symbols.js delete mode 100644 test/mjsunit/runtime-gen/createprivateownsymbol.js diff --git a/src/factory.cc b/src/factory.cc index 39e3280..934ab25 100644 --- a/src/factory.cc +++ b/src/factory.cc @@ -664,14 +664,6 @@ Handle Factory::NewPrivateSymbol() { } -Handle Factory::NewPrivateOwnSymbol() { - Handle symbol = NewSymbol(); - symbol->set_is_private(true); - symbol->set_is_own(true); - return symbol; -} - - Handle Factory::NewNativeContext() { Handle array = NewFixedArray(Context::NATIVE_CONTEXT_SLOTS); array->set_map_no_write_barrier(*native_context_map()); diff --git a/src/factory.h b/src/factory.h index aa1f94d..f09d247 100644 --- a/src/factory.h +++ b/src/factory.h @@ -221,7 +221,6 @@ class Factory V8_FINAL { // Create a symbol. Handle NewSymbol(); Handle NewPrivateSymbol(); - Handle NewPrivateOwnSymbol(); // Create a global (but otherwise uninitialized) context. Handle NewNativeContext(); diff --git a/src/lookup.h b/src/lookup.h index 2d609c5..923e810 100644 --- a/src/lookup.h +++ b/src/lookup.h @@ -47,7 +47,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { LookupIterator(Handle receiver, Handle name, Configuration configuration = CHECK_ALL) - : configuration_(ComputeConfiguration(configuration, name)), + : configuration_(configuration), state_(NOT_FOUND), property_kind_(DATA), property_encoding_(DESCRIPTOR), @@ -66,7 +66,7 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { Handle name, Handle holder, Configuration configuration = CHECK_ALL) - : configuration_(ComputeConfiguration(configuration, name)), + : configuration_(configuration), state_(NOT_FOUND), property_kind_(DATA), property_encoding_(DESCRIPTOR), @@ -187,15 +187,6 @@ class LookupIterator V8_FINAL BASE_EMBEDDED { return number_; } - static Configuration ComputeConfiguration( - Configuration configuration, Handle name) { - if (name->IsOwn()) { - return static_cast(configuration & CHECK_OWN); - } else { - return configuration; - } - } - Configuration configuration_; State state_; bool has_property_; diff --git a/src/objects-inl.h b/src/objects-inl.h index 7e1c5b1..432d613 100644 --- a/src/objects-inl.h +++ b/src/objects-inl.h @@ -3372,7 +3372,6 @@ bool Name::Equals(Handle one, Handle two) { ACCESSORS(Symbol, name, Object, kNameOffset) ACCESSORS(Symbol, flags, Smi, kFlagsOffset) BOOL_ACCESSORS(Symbol, flags, is_private, kPrivateBit) -BOOL_ACCESSORS(Symbol, flags, is_own, kOwnBit) bool String::Equals(String* other) { @@ -6497,10 +6496,6 @@ uint32_t Name::Hash() { return String::cast(this)->ComputeAndSetHash(); } -bool Name::IsOwn() { - return this->IsSymbol() && Symbol::cast(this)->is_own(); -} - StringHasher::StringHasher(int length, uint32_t seed) : length_(length), diff --git a/src/objects-printer.cc b/src/objects-printer.cc index 8fbe218..5acd5e5 100644 --- a/src/objects-printer.cc +++ b/src/objects-printer.cc @@ -430,8 +430,7 @@ void Symbol::SymbolPrint(OStream& os) { // NOLINT HeapObject::PrintHeader(os, "Symbol"); os << " - hash: " << Hash(); os << "\n - name: " << Brief(name()); - os << "\n - private: " << is_private(); - os << "\n - own: " << is_own(); + os << " - private: " << is_private(); os << "\n"; } diff --git a/src/objects.cc b/src/objects.cc index 29af1d8..aa99840 100644 --- a/src/objects.cc +++ b/src/objects.cc @@ -3560,11 +3560,6 @@ void JSObject::LookupRealNamedProperty(Handle name, void JSObject::LookupRealNamedPropertyInPrototypes(Handle name, LookupResult* result) { - if (name->IsOwn()) { - result->NotFound(); - return; - } - DisallowHeapAllocation no_gc; Isolate* isolate = GetIsolate(); for (PrototypeIterator iter(isolate, this); !iter.IsAtEnd(); iter.Advance()) { @@ -6112,7 +6107,7 @@ void JSReceiver::LookupOwn( } js_object->LookupOwnRealNamedProperty(name, result); - if (result->IsFound() || name->IsOwn() || !search_hidden_prototypes) return; + if (result->IsFound() || !search_hidden_prototypes) return; PrototypeIterator iter(GetIsolate(), js_object); if (!iter.GetCurrent()->IsJSReceiver()) return; @@ -6131,10 +6126,6 @@ void JSReceiver::Lookup(Handle name, LookupResult* result) { !iter.IsAtEnd(); iter.Advance()) { JSReceiver::cast(iter.GetCurrent())->LookupOwn(name, result, false); if (result->IsFound()) return; - if (name->IsOwn()) { - result->NotFound(); - return; - } } result->NotFound(); } diff --git a/src/objects.h b/src/objects.h index 9e3da11..62e80e7 100644 --- a/src/objects.h +++ b/src/objects.h @@ -8954,9 +8954,6 @@ class Name: public HeapObject { // Conversion. inline bool AsArrayIndex(uint32_t* index); - // Whether name can only name own properties. - inline bool IsOwn(); - DECLARE_CAST(Name) DECLARE_PRINTER(Name) @@ -9032,10 +9029,6 @@ class Symbol: public Name { // [is_private]: whether this is a private symbol. DECL_BOOLEAN_ACCESSORS(is_private) - // [is_own]: whether this is an own symbol, that is, only used to designate - // own properties of objects. - DECL_BOOLEAN_ACCESSORS(is_own) - DECLARE_CAST(Symbol) // Dispatched behavior. @@ -9051,7 +9044,6 @@ class Symbol: public Name { private: static const int kPrivateBit = 0; - static const int kOwnBit = 1; DISALLOW_IMPLICIT_CONSTRUCTORS(Symbol); }; diff --git a/src/runtime.cc b/src/runtime.cc index 1fbedc6..24c9655 100644 --- a/src/runtime.cc +++ b/src/runtime.cc @@ -608,17 +608,6 @@ RUNTIME_FUNCTION(Runtime_CreatePrivateSymbol) { } -RUNTIME_FUNCTION(Runtime_CreatePrivateOwnSymbol) { - HandleScope scope(isolate); - DCHECK(args.length() == 1); - CONVERT_ARG_HANDLE_CHECKED(Object, name, 0); - RUNTIME_ASSERT(name->IsString() || name->IsUndefined()); - Handle symbol = isolate->factory()->NewPrivateOwnSymbol(); - if (name->IsString()) symbol->set_name(*name); - return *symbol; -} - - RUNTIME_FUNCTION(Runtime_CreateGlobalPrivateSymbol) { HandleScope scope(isolate); DCHECK(args.length() == 1); diff --git a/src/runtime.h b/src/runtime.h index 4a78edb..93185cc 100644 --- a/src/runtime.h +++ b/src/runtime.h @@ -260,7 +260,6 @@ namespace internal { F(CreateSymbol, 1, 1) \ F(CreatePrivateSymbol, 1, 1) \ F(CreateGlobalPrivateSymbol, 1, 1) \ - F(CreatePrivateOwnSymbol, 1, 1) \ F(NewSymbolWrapper, 1, 1) \ F(SymbolDescription, 1, 1) \ F(SymbolRegistry, 0, 1) \ diff --git a/test/mjsunit/own-symbols.js b/test/mjsunit/own-symbols.js deleted file mode 100644 index 588a032..0000000 --- a/test/mjsunit/own-symbols.js +++ /dev/null @@ -1,55 +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. -// -// Flags: --allow-natives-syntax - -var s = %CreatePrivateOwnSymbol("s"); -var s1 = %CreatePrivateOwnSymbol("s1"); - -function TestSimple() { - var p = {} - p[s] = "moo"; - - var o = Object.create(p); - - assertEquals(undefined, o[s]); - assertEquals("moo", p[s]); - - o[s] = "bow-wow"; - assertEquals("bow-wow", o[s]); - assertEquals("moo", p[s]); -} - -TestSimple(); - - -function TestICs() { - var p = {} - p[s] = "moo"; - - - var o = Object.create(p); - o[s1] = "bow-wow"; - function checkNonOwn(o) { - assertEquals(undefined, o[s]); - assertEquals("bow-wow", o[s1]); - } - - checkNonOwn(o); - - // Test monomorphic/optimized. - for (var i = 0; i < 1000; i++) { - checkNonOwn(o); - } - - // Test non-monomorphic. - for (var i = 0; i < 1000; i++) { - var oNew = Object.create(p); - oNew["s" + i] = i; - oNew[s1] = "bow-wow"; - checkNonOwn(oNew); - } -} - -TestICs(); diff --git a/test/mjsunit/runtime-gen/createprivateownsymbol.js b/test/mjsunit/runtime-gen/createprivateownsymbol.js deleted file mode 100644 index 7454828..0000000 --- a/test/mjsunit/runtime-gen/createprivateownsymbol.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2014 the V8 project authors. All rights reserved. -// AUTO-GENERATED BY tools/generate-runtime-tests.py, DO NOT MODIFY -// Flags: --allow-natives-syntax --harmony --harmony-proxies -var arg0 = "foo"; -%CreatePrivateOwnSymbol(arg0); diff --git a/tools/generate-runtime-tests.py b/tools/generate-runtime-tests.py index 513fa9a..a41df67 100755 --- a/tools/generate-runtime-tests.py +++ b/tools/generate-runtime-tests.py @@ -47,8 +47,8 @@ EXPAND_MACROS = [ # that the parser doesn't bit-rot. Change the values as needed when you add, # remove or change runtime functions, but make sure we don't lose our ability # to parse them! -EXPECTED_FUNCTION_COUNT = 429 -EXPECTED_FUZZABLE_COUNT = 332 +EXPECTED_FUNCTION_COUNT = 428 +EXPECTED_FUZZABLE_COUNT = 331 EXPECTED_CCTEST_COUNT = 7 EXPECTED_UNKNOWN_COUNT = 16 EXPECTED_BUILTINS_COUNT = 809 @@ -226,7 +226,6 @@ CUSTOM_KNOWN_GOOD_INPUT = { "CreateBreakIterator": ["'en-US'", "{type: 'string'}", None, None], "CreateJSFunctionProxy": [None, "function() {}", None, None, None], "CreatePrivateSymbol": ["\"foo\"", None], - "CreatePrivateOwnSymbol": ["\"foo\"", None], "CreateSymbol": ["\"foo\"", None], "DateParseString": [None, "new Array(8)", None], "DefineAccessorPropertyUnchecked": [None, None, "function() {}", -- 2.7.4