Index: src/symbol.js |
diff --git a/src/symbol.js b/src/symbol.js |
index 49f909694c19f3ee44c60a39def7fbbd0f39c6a5..aec80551f438e85b384e5ca56303d0d7a7392017 100644 |
--- a/src/symbol.js |
+++ b/src/symbol.js |
@@ -63,30 +63,17 @@ function SymbolValueOf() { |
} |
-function GetSymbolRegistry() { |
- var registry = %SymbolRegistry(); |
- if (!('internal' in registry)) { |
- registry.internal = {__proto__: null}; |
- registry.for = {__proto__: null}; |
- registry.keyFor = {__proto__: null}; |
- } |
- return registry; |
-} |
- |
- |
function InternalSymbol(key) { |
- var registry = GetSymbolRegistry(); |
- if (!(key in registry.internal)) { |
- registry.internal[key] = %CreateSymbol(key); |
- } |
- return registry.internal[key]; |
+ var registry = %SymbolRegistry().for_intern; |
Michael Starzinger
2014/03/24 15:17:19
nit: The usage of the local variable "registry" is
rossberg
2014/03/24 15:54:46
Done.
|
+ if (IS_UNDEFINED(registry[key])) registry[key] = %CreateSymbol(key); |
+ return registry[key]; |
} |
function SymbolFor(key) { |
key = TO_STRING_INLINE(key); |
- var registry = GetSymbolRegistry(); |
- if (!(key in registry.for)) { |
+ var registry = %SymbolRegistry(); |
+ if (IS_UNDEFINED(registry.for[key])) { |
var symbol = %CreateSymbol(key); |
registry.for[key] = symbol; |
registry.keyFor[symbol] = key; |
@@ -96,10 +83,8 @@ function SymbolFor(key) { |
function SymbolKeyFor(symbol) { |
- if (!IS_SYMBOL(symbol)) { |
- throw MakeTypeError("not_a_symbol", [symbol]); |
- } |
- return GetSymbolRegistry().keyFor[symbol]; |
+ if (!IS_SYMBOL(symbol)) throw MakeTypeError("not_a_symbol", [symbol]); |
+ return %SymbolRegistry().keyFor[symbol]; |
} |