Chromium Code Reviews| Index: lib/runtime/dart/_internal.js |
| diff --git a/lib/runtime/dart/_internal.js b/lib/runtime/dart/_internal.js |
| index 8f2e5dd0c6e7d42ceec2f59460d3d4999b01ca71..5f75243fcec6e84ac4946d792b65c9fb5f1a8a95 100644 |
| --- a/lib/runtime/dart/_internal.js |
| +++ b/lib/runtime/dart/_internal.js |
| @@ -290,11 +290,11 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return ListIterable; |
| }); |
| let ListIterable = ListIterable$(); |
| - let _iterable = dart.JsSymbol('_iterable'); |
| - let _start = dart.JsSymbol('_start'); |
| - let _endOrLength = dart.JsSymbol('_endOrLength'); |
| - let _endIndex = dart.JsSymbol('_endIndex'); |
| - let _startIndex = dart.JsSymbol('_startIndex'); |
| + let _iterable = Symbol('_iterable'); |
| + let _start = Symbol('_start'); |
| + let _endOrLength = Symbol('_endOrLength'); |
| + let _endIndex = Symbol('_endIndex'); |
| + let _startIndex = Symbol('_startIndex'); |
| let SubListIterable$ = dart.generic(function(E) { |
| class SubListIterable extends ListIterable$(E) { |
| SubListIterable(iterable, start, endOrLength) { |
| @@ -398,9 +398,9 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return SubListIterable; |
| }); |
| let SubListIterable = SubListIterable$(); |
| - let _length = dart.JsSymbol('_length'); |
| - let _index = dart.JsSymbol('_index'); |
| - let _current = dart.JsSymbol('_current'); |
| + let _length = Symbol('_length'); |
| + let _index = Symbol('_index'); |
| + let _current = Symbol('_current'); |
| let ListIterator$ = dart.generic(function(E) { |
| class ListIterator extends core.Object { |
| ListIterator(iterable) { |
| @@ -439,7 +439,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return _Transformation; |
| }); |
| let _Transformation = _Transformation$(); |
| - let _f = dart.JsSymbol('_f'); |
| + let _f = Symbol('_f'); |
| let MappedIterable$ = dart.generic(function(S, T) { |
| class MappedIterable extends collection.IterableBase$(T) { |
| static new(iterable, func) { |
| @@ -508,7 +508,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return EfficientLengthMappedIterable; |
| }); |
| let EfficientLengthMappedIterable = EfficientLengthMappedIterable$(); |
| - let _iterator = dart.JsSymbol('_iterator'); |
| + let _iterator = Symbol('_iterator'); |
| let MappedIterator$ = dart.generic(function(S, T) { |
| class MappedIterator extends core.Iterator$(T) { |
| MappedIterator(iterator, f) { |
| @@ -535,7 +535,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return MappedIterator; |
| }); |
| let MappedIterator = MappedIterator$(); |
| - let _source = dart.JsSymbol('_source'); |
| + let _source = Symbol('_source'); |
| let MappedListIterable$ = dart.generic(function(S, T) { |
| class MappedListIterable extends ListIterable$(T) { |
| MappedListIterable(source, f) { |
| @@ -630,8 +630,8 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return ExpandIterable; |
| }); |
| let ExpandIterable = ExpandIterable$(); |
| - let _currentExpansion = dart.JsSymbol('_currentExpansion'); |
| - let _nextExpansion = dart.JsSymbol('_nextExpansion'); |
| + let _currentExpansion = Symbol('_currentExpansion'); |
| + let _nextExpansion = Symbol('_nextExpansion'); |
| let ExpandIterator$ = dart.generic(function(S, T) { |
| class ExpandIterator extends core.Object { |
| ExpandIterator(iterator, f) { |
| @@ -671,7 +671,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return ExpandIterator; |
| }); |
| let ExpandIterator = ExpandIterator$(); |
| - let _takeCount = dart.JsSymbol('_takeCount'); |
| + let _takeCount = Symbol('_takeCount'); |
| let TakeIterable$ = dart.generic(function(E) { |
| class TakeIterable extends collection.IterableBase$(E) { |
| static new(iterable, takeCount) { |
| @@ -723,7 +723,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return EfficientLengthTakeIterable; |
| }); |
| let EfficientLengthTakeIterable = EfficientLengthTakeIterable$(); |
| - let _remaining = dart.JsSymbol('_remaining'); |
| + let _remaining = Symbol('_remaining'); |
| let TakeIterator$ = dart.generic(function(E) { |
| class TakeIterator extends core.Iterator$(E) { |
| TakeIterator(iterator, remaining) { |
| @@ -770,7 +770,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return TakeWhileIterable; |
| }); |
| let TakeWhileIterable = TakeWhileIterable$(); |
| - let _isFinished = dart.JsSymbol('_isFinished'); |
| + let _isFinished = Symbol('_isFinished'); |
| let TakeWhileIterator$ = dart.generic(function(E) { |
| class TakeWhileIterator extends core.Iterator$(E) { |
| TakeWhileIterator(iterator, f) { |
| @@ -800,7 +800,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return TakeWhileIterator; |
| }); |
| let TakeWhileIterator = TakeWhileIterator$(); |
| - let _skipCount = dart.JsSymbol('_skipCount'); |
| + let _skipCount = Symbol('_skipCount'); |
| let SkipIterable$ = dart.generic(function(E) { |
| class SkipIterable extends collection.IterableBase$(E) { |
| static new(iterable, count) { |
| @@ -903,7 +903,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return SkipWhileIterable; |
| }); |
| let SkipWhileIterable = SkipWhileIterable$(); |
| - let _hasSkipped = dart.JsSymbol('_hasSkipped'); |
| + let _hasSkipped = Symbol('_hasSkipped'); |
| let SkipWhileIterator$ = dart.generic(function(E) { |
| class SkipWhileIterator extends core.Iterator$(E) { |
| SkipWhileIterator(iterator, f) { |
| @@ -1796,7 +1796,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| return UnmodifiableListBase; |
| }); |
| let UnmodifiableListBase = UnmodifiableListBase$(); |
| - let _backedList = dart.JsSymbol('_backedList'); |
| + let _backedList = Symbol('_backedList'); |
| class _ListIndicesIterable extends ListIterable$(core.int) { |
| _ListIndicesIterable(backedList) { |
| this[_backedList] = backedList; |
| @@ -1815,7 +1815,7 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| methods: () => ({elementAt: [core.int, [core.int]]}) |
| }); |
| dart.defineExtensionMembers(_ListIndicesIterable, ['elementAt', 'length']); |
| - let _values = dart.JsSymbol('_values'); |
| + let _values = Symbol('_values'); |
| let ListMapView$ = dart.generic(function(E) { |
| class ListMapView extends core.Object { |
| ListMapView(values) { |
| @@ -2315,70 +2315,73 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| names: ['sort', 'sortRange', '_doSort', '_insertionSort', '_dualPivotQuicksort'] |
| }); |
| Sort._INSERTION_SORT_THRESHOLD = 32; |
| - let _name = dart.JsSymbol('_name'); |
| - class Symbol extends core.Object { |
| - Symbol(name) { |
| - this[_name] = name; |
| - } |
| - unvalidated(name) { |
| - this[_name] = name; |
| - } |
| - validated(name) { |
| - this[_name] = Symbol.validatePublicSymbol(name); |
| - } |
| - ['=='](other) { |
| - return dart.is(other, Symbol) && this[_name] == other[_name]; |
| - } |
| - get hashCode() { |
| - let arbitraryPrime = 664597; |
| - return 536870911 & dart.notNull(arbitraryPrime) * dart.notNull(dart.hashCode(this[_name])); |
| - } |
| - toString() { |
| - return `Symbol("${this[_name]}")`; |
| - } |
| - static getName(symbol) { |
| - return symbol[_name]; |
| - } |
| - static validatePublicSymbol(name) { |
| - if (dart.notNull(name[dartx.isEmpty]) || dart.notNull(Symbol.publicSymbolPattern.hasMatch(name))) |
| - return name; |
| - if (dart.notNull(name[dartx.startsWith]('_'))) { |
| - dart.throw(new core.ArgumentError(`"${name}" is a private identifier`)); |
| + let _name = Symbol('_name'); |
| + exports.Symbol = (() => { |
| + class Symbol extends core.Object { |
|
ochafik
2015/09/15 16:58:33
Note that this pattern will likely break closure's
Jennifer Messerly
2015/09/15 17:06:09
Right. I don't think that we have a goal at the pr
ochafik
2015/09/15 18:05:17
Advanced optimizations are my main goal (to let Cl
Jennifer Messerly
2015/09/15 18:34:23
hmm, yeah, let's discuss tomorrow?
Generally, I f
|
| + Symbol(name) { |
| + this[_name] = name; |
| + } |
| + unvalidated(name) { |
| + this[_name] = name; |
| + } |
| + validated(name) { |
| + this[_name] = exports.Symbol.validatePublicSymbol(name); |
| + } |
| + ['=='](other) { |
| + return dart.is(other, exports.Symbol) && this[_name] == other[_name]; |
| + } |
| + get hashCode() { |
| + let arbitraryPrime = 664597; |
| + return 536870911 & dart.notNull(arbitraryPrime) * dart.notNull(dart.hashCode(this[_name])); |
| + } |
| + toString() { |
| + return `Symbol("${this[_name]}")`; |
| + } |
| + static getName(symbol) { |
| + return symbol[_name]; |
| + } |
| + static validatePublicSymbol(name) { |
| + if (dart.notNull(name[dartx.isEmpty]) || dart.notNull(exports.Symbol.publicSymbolPattern.hasMatch(name))) |
| + return name; |
| + if (dart.notNull(name[dartx.startsWith]('_'))) { |
| + dart.throw(new core.ArgumentError(`"${name}" is a private identifier`)); |
| + } |
| + dart.throw(new core.ArgumentError(`"${name}" is not a valid (qualified) symbol name`)); |
| + } |
| + static isValidSymbol(name) { |
| + return dart.notNull(name[dartx.isEmpty]) || dart.notNull(exports.Symbol.symbolPattern.hasMatch(name)); |
| } |
| - dart.throw(new core.ArgumentError(`"${name}" is not a valid (qualified) symbol name`)); |
| - } |
| - static isValidSymbol(name) { |
| - return dart.notNull(name[dartx.isEmpty]) || dart.notNull(Symbol.symbolPattern.hasMatch(name)); |
| } |
| - } |
| - Symbol[dart.implements] = () => [core.Symbol]; |
| - dart.defineNamedConstructor(Symbol, 'unvalidated'); |
| - dart.defineNamedConstructor(Symbol, 'validated'); |
| - dart.setSignature(Symbol, { |
| - constructors: () => ({ |
| - Symbol: [Symbol, [core.String]], |
| - unvalidated: [Symbol, [core.String]], |
| - validated: [Symbol, [core.String]] |
| - }), |
| - methods: () => ({'==': [core.bool, [core.Object]]}), |
| - statics: () => ({ |
| - getName: [core.String, [Symbol]], |
| - validatePublicSymbol: [core.String, [core.String]], |
| - isValidSymbol: [core.bool, [core.String]] |
| - }), |
| - names: ['getName', 'validatePublicSymbol', 'isValidSymbol'] |
| - }); |
| - Symbol.reservedWordRE = '(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|' + 'e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|' + 'ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|' + 'v(?:ar|oid)|w(?:hile|ith))'; |
| - Symbol.publicIdentifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*'; |
| - Symbol.identifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*'; |
| - Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)'; |
| + Symbol[dart.implements] = () => [core.Symbol]; |
| + dart.defineNamedConstructor(Symbol, 'unvalidated'); |
| + dart.defineNamedConstructor(Symbol, 'validated'); |
| + dart.setSignature(Symbol, { |
| + constructors: () => ({ |
| + Symbol: [exports.Symbol, [core.String]], |
| + unvalidated: [exports.Symbol, [core.String]], |
| + validated: [exports.Symbol, [core.String]] |
| + }), |
| + methods: () => ({'==': [core.bool, [core.Object]]}), |
| + statics: () => ({ |
| + getName: [core.String, [exports.Symbol]], |
| + validatePublicSymbol: [core.String, [core.String]], |
| + isValidSymbol: [core.bool, [core.String]] |
| + }), |
| + names: ['getName', 'validatePublicSymbol', 'isValidSymbol'] |
| + }); |
| + return Symbol; |
| + })(); |
| + exports.Symbol.reservedWordRE = '(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))|d(?:efault|o)|' + 'e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ull)|' + 'ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|' + 'v(?:ar|oid)|w(?:hile|ith))'; |
| + exports.Symbol.publicIdentifierRE = '(?!' + `${exports.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*'; |
| + exports.Symbol.identifierRE = '(?!' + `${exports.Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*'; |
| + exports.Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)'; |
| let POWERS_OF_TEN = dart.const([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22]); |
| dart.defineLazyProperties(Symbol, { |
| get publicSymbolPattern() { |
| - return core.RegExp.new(`^(?:${Symbol.operatorRE}$|${Symbol.publicIdentifierRE}(?:=?$|[.](?!$)))+?$`); |
| + return core.RegExp.new(`^(?:${exports.Symbol.operatorRE}$|${exports.Symbol.publicIdentifierRE}(?:=?$|[.](?!$)))+?$`); |
| }, |
| get symbolPattern() { |
| - return core.RegExp.new(`^(?:${Symbol.operatorRE}$|${Symbol.identifierRE}(?:=?$|[.](?!$)))+?$`); |
| + return core.RegExp.new(`^(?:${exports.Symbol.operatorRE}$|${exports.Symbol.identifierRE}(?:=?$|[.](?!$)))+?$`); |
| } |
| }); |
| // Exports: |
| @@ -2452,6 +2455,5 @@ dart_library.library('dart/_internal', null, /* Imports */[ |
| exports.Lists = Lists; |
| exports.printToConsole = printToConsole; |
| exports.Sort = Sort; |
| - exports.Symbol = Symbol; |
| exports.POWERS_OF_TEN = POWERS_OF_TEN; |
| }); |