Revision: 22831
Author: [email protected]
Date: Mon Aug 4 18:17:54 2014 UTC
Log: Enable ES6 Symbols by default
In doing so also remove all references to the --harmony-symbols flag.
Due to the way context snapshotting works, it's not possible to simply
enable
the flag by default.
BUG=v8:2158
LOG=Y
[email protected]
Review URL: https://codereview.chromium.org/421313004
http://code.google.com/p/v8/source/detail?r=22831
Modified:
/branches/bleeding_edge/src/bootstrapper.cc
/branches/bleeding_edge/src/d8.js
/branches/bleeding_edge/src/flag-definitions.h
/branches/bleeding_edge/src/v8natives.js
/branches/bleeding_edge/test/cctest/test-api.cc
/branches/bleeding_edge/test/cctest/test-heap-profiler.cc
/branches/bleeding_edge/test/mjsunit/debug-script.js
/branches/bleeding_edge/test/mjsunit/es6/mirror-symbols.js
/branches/bleeding_edge/test/mjsunit/es6/regress/regress-crbug-346141.js
/branches/bleeding_edge/test/mjsunit/es6/symbols.js
/branches/bleeding_edge/test/mjsunit/es7/object-observe.js
/branches/bleeding_edge/test/mjsunit/harmony/iteration-semantics.js
/branches/bleeding_edge/test/mjsunit/harmony/private.js
/branches/bleeding_edge/test/mjsunit/harmony/proxies-symbols.js
/branches/bleeding_edge/test/mjsunit/harmony/set-prototype-of.js
/branches/bleeding_edge/test/mjsunit/proto-accessor.js
/branches/bleeding_edge/test/mjsunit/regress/regress-crbug-350864.js
/branches/bleeding_edge/tools/gyp/v8.gyp
=======================================
--- /branches/bleeding_edge/src/bootstrapper.cc Mon Aug 4 11:34:54 2014 UTC
+++ /branches/bleeding_edge/src/bootstrapper.cc Mon Aug 4 18:17:54 2014 UTC
@@ -1134,6 +1134,14 @@
InstallFunction(global, "WeakSet", JS_WEAK_SET_TYPE, JSWeakSet::kSize,
isolate->initial_object_prototype(), Builtins::kIllegal);
+ {
+ // --- S y m b o l ---
+ Handle<JSFunction> symbol_fun = InstallFunction(
+ global, "Symbol", JS_VALUE_TYPE, JSValue::kSize,
+ isolate->initial_object_prototype(), Builtins::kIllegal);
+ native_context()->set_symbol_function(*symbol_fun);
+ }
+
{ // --- sloppy arguments map
// Make sure we can recognize argument objects at runtime.
// This is done by introducing an anonymous function with
@@ -1308,14 +1316,6 @@
// TODO(mstarzinger): Move this into Genesis::InitializeGlobal once we no
// longer need to live behind flags, so functions get added to the
snapshot.
- if (FLAG_harmony_symbols) {
- // --- S y m b o l ---
- Handle<JSFunction> symbol_fun = InstallFunction(
- global, "Symbol", JS_VALUE_TYPE, JSValue::kSize,
- isolate()->initial_object_prototype(), Builtins::kIllegal);
- native_context()->set_symbol_function(*symbol_fun);
- }
-
if (FLAG_harmony_collections) {
// -- M a p
InstallFunction(global, "Map", JS_MAP_TYPE, JSMap::kSize,
@@ -1621,6 +1621,7 @@
native_object_get_notifier);
INSTALL_NATIVE(JSFunction, "NativeObjectNotifierPerformChange",
native_object_notifier_perform_change);
+ INSTALL_NATIVE(Symbol, "symbolIterator", iterator_symbol);
INSTALL_NATIVE_MATH(abs)
INSTALL_NATIVE_MATH(acos)
@@ -1651,10 +1652,6 @@
INSTALL_NATIVE(JSFunction, "DerivedSetTrap", derived_set_trap);
INSTALL_NATIVE(JSFunction, "ProxyEnumerate", proxy_enumerate);
}
-
- if (FLAG_harmony_symbols) {
- INSTALL_NATIVE(Symbol, "symbolIterator", iterator_symbol);
- }
}
#undef INSTALL_NATIVE
@@ -2071,7 +2068,6 @@
for (int i = ExperimentalNatives::GetDebuggerCount();
i < ExperimentalNatives::GetBuiltinsCount();
i++) {
- INSTALL_EXPERIMENTAL_NATIVE(i, symbols, "symbol.js")
INSTALL_EXPERIMENTAL_NATIVE(i, proxies, "proxy.js")
INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection.js")
INSTALL_EXPERIMENTAL_NATIVE(i, collections, "collection-iterator.js")
=======================================
--- /branches/bleeding_edge/src/d8.js Mon Jul 14 14:01:30 2014 UTC
+++ /branches/bleeding_edge/src/d8.js Mon Aug 4 18:17:54 2014 UTC
@@ -1997,10 +1997,7 @@
} catch(e) {}
var props = [];
var names = Object.getOwnPropertyNames(x);
- if (Object.getOwnPropertySymbols) {
- // FLAG_harmony_symbols is turned on.
- names = names.concat(Object.getOwnPropertySymbols(x));
- }
+ names = names.concat(Object.getOwnPropertySymbols(x));
for (var i in names) {
var name = names[i];
var desc = Object.getOwnPropertyDescriptor(x, name);
=======================================
--- /branches/bleeding_edge/src/flag-definitions.h Mon Aug 4 11:34:54 2014
UTC
+++ /branches/bleeding_edge/src/flag-definitions.h Mon Aug 4 18:17:54 2014
UTC
@@ -153,7 +153,6 @@
DEFINE_BOOL(harmony_scoping, false, "enable harmony block scoping")
DEFINE_BOOL(harmony_modules, false,
"enable harmony modules (implies block scoping)")
-DEFINE_BOOL(harmony_symbols, false, "enable harmony symbols")
DEFINE_BOOL(harmony_proxies, false, "enable harmony proxies")
DEFINE_BOOL(harmony_collections, false,
"enable harmony collections (sets, maps)")
@@ -176,12 +175,8 @@
DEFINE_IMPLICATION(harmony, harmony_arrays)
DEFINE_IMPLICATION(harmony, harmony_arrow_functions)
DEFINE_IMPLICATION(harmony_modules, harmony_scoping)
-DEFINE_IMPLICATION(harmony_collections, harmony_symbols)
-DEFINE_IMPLICATION(harmony_generators, harmony_symbols)
-DEFINE_IMPLICATION(harmony_iteration, harmony_symbols)
DEFINE_IMPLICATION(harmony, es_staging)
-DEFINE_IMPLICATION(es_staging, harmony_symbols)
DEFINE_IMPLICATION(es_staging, harmony_collections)
DEFINE_IMPLICATION(es_staging, harmony_iteration)
=======================================
--- /branches/bleeding_edge/src/v8natives.js Mon Jul 21 09:58:01 2014 UTC
+++ /branches/bleeding_edge/src/v8natives.js Mon Aug 4 18:17:54 2014 UTC
@@ -1180,7 +1180,6 @@
}
}
- // FLAG_harmony_symbols may be on, but symbols aren't included by for-in.
var filter = PROPERTY_ATTRIBUTES_STRING |
PROPERTY_ATTRIBUTES_PRIVATE_SYMBOL;
var symbols = %GetOwnPropertyNames(object, filter);
for (var i = 0; i < symbols.length; ++i) {
=======================================
--- /branches/bleeding_edge/test/cctest/test-api.cc Mon Aug 4 11:34:54
2014 UTC
+++ /branches/bleeding_edge/test/cctest/test-api.cc Mon Aug 4 18:17:54
2014 UTC
@@ -2737,8 +2737,6 @@
THREADED_TEST(SymbolProperties) {
- i::FLAG_harmony_symbols = true;
-
LocalContext env;
v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
@@ -2887,8 +2885,6 @@
THREADED_TEST(GlobalSymbols) {
- i::FLAG_harmony_symbols = true;
-
LocalContext env;
v8::Isolate* isolate = env->GetIsolate();
v8::HandleScope scope(isolate);
@@ -21411,7 +21407,6 @@
THREADED_TEST(Regress2535) {
i::FLAG_harmony_collections = true;
- i::FLAG_harmony_symbols = true;
LocalContext context;
v8::HandleScope scope(context->GetIsolate());
Local<Value> set_value = CompileRun("new Set();");
=======================================
--- /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Mon Aug 4
11:34:54 2014 UTC
+++ /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Mon Aug 4
18:17:54 2014 UTC
@@ -472,8 +472,6 @@
TEST(HeapSnapshotSymbol) {
- i::FLAG_harmony_symbols = true;
-
LocalContext env;
v8::HandleScope scope(env->GetIsolate());
v8::HeapProfiler* heap_profiler = env->GetIsolate()->GetHeapProfiler();
=======================================
--- /branches/bleeding_edge/test/mjsunit/debug-script.js Tue May 6
14:48:34 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/debug-script.js Mon Aug 4
18:17:54 2014 UTC
@@ -59,7 +59,7 @@
}
// This has to be updated if the number of native scripts change.
-assertTrue(named_native_count == 19 || named_native_count == 20);
+assertEquals(21, named_native_count);
// Only the 'gc' extension is loaded.
assertEquals(1, extension_count);
// This script and mjsunit.js has been loaded. If using d8, d8 loads
=======================================
--- /branches/bleeding_edge/test/mjsunit/es6/mirror-symbols.js Wed May 21
15:13:50 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/es6/mirror-symbols.js Mon Aug 4
18:17:54 2014 UTC
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Flags: --expose-debug-as debug --harmony-symbols
+// Flags: --expose-debug-as debug
// Test the mirror object for symbols.
function testSymbolMirror(symbol, description) {
=======================================
---
/branches/bleeding_edge/test/mjsunit/es6/regress/regress-crbug-346141.js
Fri May 16 14:42:02 2014 UTC
+++
/branches/bleeding_edge/test/mjsunit/es6/regress/regress-crbug-346141.js
Mon Aug 4 18:17:54 2014 UTC
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Flags: --harmony-symbols
-
var s = Symbol()
var o = {}
o[s] = 2
=======================================
--- /branches/bleeding_edge/test/mjsunit/es6/symbols.js Wed Jul 16 09:26:11
2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/es6/symbols.js Mon Aug 4 18:17:54
2014 UTC
@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-symbols --harmony-collections
+// Flags: --harmony-collections
// Flags: --expose-gc --allow-natives-syntax
var symbols = []
=======================================
--- /branches/bleeding_edge/test/mjsunit/es7/object-observe.js Mon Jul 28
13:12:26 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/es7/object-observe.js Mon Aug 4
18:17:54 2014 UTC
@@ -26,7 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --harmony-proxies --harmony-collections
-// Flags: --harmony-symbols --allow-natives-syntax
+// Flags: --allow-natives-syntax
var allObservers = [];
function reset() {
=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/iteration-semantics.js Thu
Jul 24 13:40:08 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/harmony/iteration-semantics.js Mon
Aug 4 18:17:54 2014 UTC
@@ -27,7 +27,6 @@
// Flags: --harmony-iteration
// Flags: --harmony-generators --harmony-scoping --harmony-proxies
-// Flags: --harmony-symbols
// Test for-of semantics.
=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/private.js Tue Jul 1
15:47:41 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/harmony/private.js Mon Aug 4
18:17:54 2014 UTC
@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-symbols --harmony-collections
+// Flags: --harmony-collections
// Flags: --expose-gc --allow-natives-syntax
var symbols = []
=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/proxies-symbols.js Fri Mar
22 17:27:44 2013 UTC
+++ /branches/bleeding_edge/test/mjsunit/harmony/proxies-symbols.js Mon
Aug 4 18:17:54 2014 UTC
@@ -25,7 +25,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-proxies --harmony-symbols
+// Flags: --harmony-proxies
// Helper.
=======================================
--- /branches/bleeding_edge/test/mjsunit/harmony/set-prototype-of.js Fri
Feb 28 14:26:32 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/harmony/set-prototype-of.js Mon
Aug 4 18:17:54 2014 UTC
@@ -25,8 +25,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-symbols
-
function getObjects() {
function func() {}
=======================================
--- /branches/bleeding_edge/test/mjsunit/proto-accessor.js Wed Mar 5
08:58:38 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/proto-accessor.js Mon Aug 4
18:17:54 2014 UTC
@@ -25,8 +25,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-symbols
-
// Fake Symbol if undefined, allowing test to run in non-Harmony mode as
well.
this.Symbol = typeof Symbol != 'undefined' ? Symbol : String;
=======================================
--- /branches/bleeding_edge/test/mjsunit/regress/regress-crbug-350864.js
Tue May 6 14:48:34 2014 UTC
+++ /branches/bleeding_edge/test/mjsunit/regress/regress-crbug-350864.js
Mon Aug 4 18:17:54 2014 UTC
@@ -25,8 +25,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-symbols
-
var v0 = new WeakMap;
var v1 = {};
v0.set(v1, 1);
=======================================
--- /branches/bleeding_edge/tools/gyp/v8.gyp Thu Jul 31 15:36:22 2014 UTC
+++ /branches/bleeding_edge/tools/gyp/v8.gyp Mon Aug 4 18:17:54 2014 UTC
@@ -1431,11 +1431,11 @@
'../../src/weak_collection.js',
'../../src/promise.js',
'../../src/object-observe.js',
+ '../../src/symbol.js',
'../../src/macros.py',
],
'experimental_library_files': [
'../../src/macros.py',
- '../../src/symbol.js',
'../../src/proxy.js',
'../../src/collection.js',
'../../src/collection-iterator.js',
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.