Chromium Code Reviews| 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]; |
| } |