Index: src/symbol.js |
diff --git a/src/symbol.js b/src/symbol.js |
index 3f6e281777086cb9317071a730767db99c9db157..84386a96bde60d77a5fc1c7f2f64db2c69db9bba 100644 |
--- a/src/symbol.js |
+++ b/src/symbol.js |
@@ -2,17 +2,6 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// Expects following symbols to be set in the bootstrapper during genesis: |
-// - symbolHasInstance |
-// - symbolIsConcatSpreadable |
-// - symbolIsRegExp |
-// - symbolIterator |
-// - symbolToPrimitive |
-// - symbolToStringTag |
-// - symbolUnscopables |
- |
-var $symbolToString; |
- |
(function(global, utils) { |
"use strict"; |
@@ -24,8 +13,16 @@ var $symbolToString; |
var GlobalObject = global.Object; |
var GlobalSymbol = global.Symbol; |
+var hasInstanceSymbol = utils.ImportNow("has_instance_symbol"); |
+var isConcatSpreadableSymbol = |
+ utils.ImportNow("is_concat_spreadable_symbol"); |
+var isRegExpSymbol = utils.ImportNow("is_regexp_symbol"); |
+var iteratorSymbol = utils.ImportNow("iterator_symbol"); |
var ObjectGetOwnPropertyKeys; |
+var toPrimitiveSymbol = utils.ImportNow("to_primitive_symbol"); |
var ToString; |
+var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol"); |
+var unscopablesSymbol = utils.ImportNow("unscopables_symbol"); |
utils.Import(function(from) { |
ObjectGetOwnPropertyKeys = from.ObjectGetOwnPropertyKeys; |
@@ -97,22 +94,22 @@ function ObjectGetOwnPropertySymbols(obj) { |
return ObjectGetOwnPropertyKeys(obj, PROPERTY_ATTRIBUTES_STRING); |
} |
-//------------------------------------------------------------------- |
+// ------------------------------------------------------------------- |
%SetCode(GlobalSymbol, SymbolConstructor); |
%FunctionSetPrototype(GlobalSymbol, new GlobalObject()); |
utils.InstallConstants(GlobalSymbol, [ |
// TODO(rossberg): expose when implemented. |
- // "hasInstance", symbolHasInstance, |
- // "isConcatSpreadable", symbolIsConcatSpreadable, |
- // "isRegExp", symbolIsRegExp, |
- "iterator", symbolIterator, |
- "toPrimitive", symbolToPrimitive, |
+ // "hasInstance", hasInstanceSymbol, |
+ // "isConcatSpreadable", isConcatSpreadableSymbol, |
+ // "isRegExp", isRegExpSymbol, |
+ "iterator", iteratorSymbol, |
+ "toPrimitive", toPrimitiveSymbol, |
// TODO(dslomov, caitp): Currently defined in harmony-tostring.js --- |
// Move here when shipping |
- // "toStringTag", symbolToStringTag, |
- "unscopables", symbolUnscopables |
+ // "toStringTag", toStringTagSymbol, |
+ "unscopables", unscopablesSymbol, |
]); |
utils.InstallFunctions(GlobalSymbol, DONT_ENUM, [ |
@@ -122,12 +119,12 @@ utils.InstallFunctions(GlobalSymbol, DONT_ENUM, [ |
%AddNamedProperty( |
GlobalSymbol.prototype, "constructor", GlobalSymbol, DONT_ENUM); |
-utils.SetFunctionName(SymbolToPrimitive, symbolToPrimitive); |
+utils.SetFunctionName(SymbolToPrimitive, toPrimitiveSymbol); |
%AddNamedProperty( |
- GlobalSymbol.prototype, symbolToPrimitive, SymbolToPrimitive, |
+ GlobalSymbol.prototype, toPrimitiveSymbol, SymbolToPrimitive, |
DONT_ENUM | READ_ONLY); |
%AddNamedProperty( |
- GlobalSymbol.prototype, symbolToStringTag, "Symbol", DONT_ENUM | READ_ONLY); |
+ GlobalSymbol.prototype, toStringTagSymbol, "Symbol", DONT_ENUM | READ_ONLY); |
utils.InstallFunctions(GlobalSymbol.prototype, DONT_ENUM, [ |
"toString", SymbolToString, |
@@ -138,6 +135,11 @@ utils.InstallFunctions(GlobalObject, DONT_ENUM, [ |
"getOwnPropertySymbols", ObjectGetOwnPropertySymbols |
]); |
-$symbolToString = SymbolToString; |
+// ------------------------------------------------------------------- |
+// Exports |
+ |
+utils.Export(function(to) { |
+ to.SymbolToString = SymbolToString; |
+}) |
}) |