Skip to content

Commit aba85e3

Browse files
author
John Messerly
committed
fixes #131, use before define from variables to classes
Factored the load order logic into its own file, as it was easier to work with that way. We could definitely tweak the structure. Also tried hoisting constants out to top level, but it's not quite ready yet, so splitting that work out into a separate CL. (also fixes #152 about cleaning up lazyClass, and fixes #181 about static fields) [email protected] Review URL: https://codereview.chromium.org/1133593004
1 parent 32f3c78 commit aba85e3

28 files changed

+1476
-1314
lines changed

pkg/dev_compiler/lib/runtime/dart/_interceptors.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ var _js_embedded_names = dart.import(_js_embedded_names);
2727
return JSExtendableArray;
2828
});
2929
let JSExtendableArray = JSExtendableArray$();
30-
let _isInt32 = Symbol('_isInt32');
31-
let _tdivFast = Symbol('_tdivFast');
32-
let _tdivSlow = Symbol('_tdivSlow');
33-
let _shlPositive = Symbol('_shlPositive');
34-
let _shrReceiverPositive = Symbol('_shrReceiverPositive');
35-
let _shrOtherPositive = Symbol('_shrOtherPositive');
36-
let _shrBothPositive = Symbol('_shrBothPositive');
3730
class Interceptor extends core.Object {
3831
Interceptor() {
3932
}
@@ -53,6 +46,13 @@ var _js_embedded_names = dart.import(_js_embedded_names);
5346
return _js_helper.getRuntimeType(this);
5447
}
5548
}
49+
let _isInt32 = Symbol('_isInt32');
50+
let _tdivFast = Symbol('_tdivFast');
51+
let _tdivSlow = Symbol('_tdivSlow');
52+
let _shlPositive = Symbol('_shlPositive');
53+
let _shrReceiverPositive = Symbol('_shrReceiverPositive');
54+
let _shrOtherPositive = Symbol('_shrOtherPositive');
55+
let _shrBothPositive = Symbol('_shrBothPositive');
5656
class JSNumber extends Interceptor {
5757
JSNumber() {
5858
super.Interceptor();
@@ -1062,8 +1062,8 @@ var _js_embedded_names = dart.import(_js_embedded_names);
10621062
exports.JSFixedArray = JSFixedArray;
10631063
exports.JSExtendableArray$ = JSExtendableArray$;
10641064
exports.JSExtendableArray = JSExtendableArray;
1065-
exports.JSNumber = JSNumber;
10661065
exports.Interceptor = Interceptor;
1066+
exports.JSNumber = JSNumber;
10671067
exports.JSInt = JSInt;
10681068
exports.JSDouble = JSDouble;
10691069
exports.JSPositiveInt = JSPositiveInt;

pkg/dev_compiler/lib/runtime/dart/_internal.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
366366
});
367367
let ListIterator = ListIterator$();
368368
let _Transformation$ = dart.generic(function(S, T) {
369-
let _Transformation = dart.typedef('_Transformation', () => dart.functionType(T, [S]));
369+
let _Transformation = dart.typedef('_Transformation', dart.functionType(T, [S]));
370370
return _Transformation;
371371
});
372372
let _Transformation = _Transformation$();
@@ -463,7 +463,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
463463
});
464464
let MappedListIterable = MappedListIterable$();
465465
let _ElementPredicate$ = dart.generic(function(E) {
466-
let _ElementPredicate = dart.typedef('_ElementPredicate', () => dart.functionType(core.bool, [E]));
466+
let _ElementPredicate = dart.typedef('_ElementPredicate', dart.functionType(core.bool, [E]));
467467
return _ElementPredicate;
468468
});
469469
let _ElementPredicate = _ElementPredicate$();
@@ -503,7 +503,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
503503
});
504504
let WhereIterator = WhereIterator$();
505505
let _ExpandFunction$ = dart.generic(function(S, T) {
506-
let _ExpandFunction = dart.typedef('_ExpandFunction', () => dart.functionType(core.Iterable$(T), [S]));
506+
let _ExpandFunction = dart.typedef('_ExpandFunction', dart.functionType(core.Iterable$(T), [S]));
507507
return _ExpandFunction;
508508
});
509509
let _ExpandFunction = _ExpandFunction$();
@@ -1162,11 +1162,11 @@ var _js_primitives = dart.lazyImport(_js_primitives);
11621162
core.RangeError.checkValidRange(start, end, list[core.$length]);
11631163
}
11641164
getRangeList(list, start, end) {
1165-
IterableMixinWorkaround._rangeCheck(list, start, end);
1165+
IterableMixinWorkaround$()._rangeCheck(list, start, end);
11661166
return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), start, end);
11671167
}
11681168
static setRangeList(list, start, end, from, skipCount) {
1169-
IterableMixinWorkaround._rangeCheck(list, start, end);
1169+
IterableMixinWorkaround$()._rangeCheck(list, start, end);
11701170
let length = dart.notNull(end) - dart.notNull(start);
11711171
if (length == 0)
11721172
return;
@@ -1187,7 +1187,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
11871187
Lists.copy(otherList, otherStart, list, start, length);
11881188
}
11891189
static replaceRangeList(list, start, end, iterable) {
1190-
IterableMixinWorkaround._rangeCheck(list, start, end);
1190+
IterableMixinWorkaround$()._rangeCheck(list, start, end);
11911191
if (!dart.is(iterable, EfficientLength)) {
11921192
iterable = iterable[core.$toList]();
11931193
}
@@ -1212,7 +1212,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
12121212
}
12131213
}
12141214
static fillRangeList(list, start, end, fillValue) {
1215-
IterableMixinWorkaround._rangeCheck(list, start, end);
1215+
IterableMixinWorkaround$()._rangeCheck(list, start, end);
12161216
for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) {
12171217
list[core.$set](i, fillValue);
12181218
}
@@ -1299,22 +1299,22 @@ var _js_primitives = dart.lazyImport(_js_primitives);
12991299
}
13001300
}
13011301
let __CastType0$ = dart.generic(function(S, T) {
1302-
let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(core.Iterable$(T), [S]));
1302+
let __CastType0 = dart.typedef('__CastType0', dart.functionType(core.Iterable$(T), [S]));
13031303
return __CastType0;
13041304
});
13051305
let __CastType0 = __CastType0$();
13061306
let __CastType2$ = dart.generic(function(E) {
1307-
let __CastType2 = dart.typedef('__CastType2', () => dart.functionType(core.bool, [E]));
1307+
let __CastType2 = dart.typedef('__CastType2', dart.functionType(core.bool, [E]));
13081308
return __CastType2;
13091309
});
13101310
let __CastType2 = __CastType2$();
13111311
let __CastType4$ = dart.generic(function(E) {
1312-
let __CastType4 = dart.typedef('__CastType4', () => dart.functionType(core.bool, [E]));
1312+
let __CastType4 = dart.typedef('__CastType4', dart.functionType(core.bool, [E]));
13131313
return __CastType4;
13141314
});
13151315
let __CastType4 = __CastType4$();
13161316
let __CastType6$ = dart.generic(function(T) {
1317-
let __CastType6 = dart.typedef('__CastType6', () => dart.functionType(core.bool, [T]));
1317+
let __CastType6 = dart.typedef('__CastType6', dart.functionType(core.bool, [T]));
13181318
return __CastType6;
13191319
});
13201320
let __CastType6 = __CastType6$();
@@ -1963,6 +1963,7 @@ var _js_primitives = dart.lazyImport(_js_primitives);
19631963
Symbol.publicIdentifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*';
19641964
Symbol.identifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*';
19651965
Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)';
1966+
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]);
19661967
dart.defineLazyProperties(Symbol, {
19671968
get publicSymbolPattern() {
19681969
return new core.RegExp(`^(?:${Symbol.operatorRE}$|${Symbol.publicIdentifierRE}(?:=?$|[.](?!$)))+?$`);
@@ -1971,7 +1972,6 @@ var _js_primitives = dart.lazyImport(_js_primitives);
19711972
return new core.RegExp(`^(?:${Symbol.operatorRE}$|${Symbol.identifierRE}(?:=?$|[.](?!$)))+?$`);
19721973
}
19731974
});
1974-
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]);
19751975
// Exports:
19761976
exports.EfficientLength = EfficientLength;
19771977
exports.ListIterable$ = ListIterable$;

pkg/dev_compiler/lib/runtime/dart/_isolate_helper.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ var async = dart.import(async);
356356
return initializeObject(classId, emptyInstance, fields);
357357
}
358358
}
359-
let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.dynamic, [dart.dynamic]));
359+
let __CastType0 = dart.typedef('__CastType0', dart.functionType(dart.dynamic, [dart.dynamic]));
360360
// Function _callInIsolate: (_IsolateContext, Function) → dynamic
361361
function _callInIsolate(isolate, func) {
362362
let result = isolate.eval(func);
@@ -840,9 +840,9 @@ var async = dart.import(async);
840840
return !!self.postMessage;
841841
}
842842
});
843-
let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, []));
844-
let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', () => dart.functionType(dart.dynamic, [dart.dynamic]));
845-
let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', () => dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
843+
let _MainFunction = dart.typedef('_MainFunction', dart.functionType(dart.dynamic, []));
844+
let _MainFunctionArgs = dart.typedef('_MainFunctionArgs', dart.functionType(dart.dynamic, [dart.dynamic]));
845+
let _MainFunctionArgsMessage = dart.typedef('_MainFunctionArgsMessage', dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
846846
class IsolateNatives extends core.Object {
847847
static computeThisScript() {
848848
let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CURRENT_SCRIPT);

pkg/dev_compiler/lib/runtime/dart/_js_helper.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3723,7 +3723,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
37233723
let isolateTagGetter = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.GET_ISOLATE_TAG);
37243724
return isolateTagGetter(name);
37253725
}
3726-
let LoadLibraryFunctionType = dart.typedef('LoadLibraryFunctionType', () => dart.functionType(async.Future$(core.Null), []));
3726+
let LoadLibraryFunctionType = dart.typedef('LoadLibraryFunctionType', dart.functionType(async.Future$(core.Null), []));
37273727
// Function _loadLibraryWrapper: (String) → () → Future<Null>
37283728
function _loadLibraryWrapper(loadId) {
37293729
return () => loadDeferredLibrary(loadId);
@@ -3736,7 +3736,7 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
37363736
return new (core.Set$(core.String))();
37373737
}
37383738
});
3739-
let DeferredLoadCallback = dart.typedef('DeferredLoadCallback', () => dart.functionType(dart.void, []));
3739+
let DeferredLoadCallback = dart.typedef('DeferredLoadCallback', dart.functionType(dart.void, []));
37403740
exports.deferredLoadHook = null;
37413741
// Function loadDeferredLibrary: (String) → Future<Null>
37423742
function loadDeferredLibrary(loadId) {
@@ -3855,8 +3855,8 @@ var _isolate_helper = dart.lazyImport(_isolate_helper);
38553855
function mainHasTooManyParameters() {
38563856
throw new MainError("'main' expects too many parameters.");
38573857
}
3858-
let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(core.int, [core.String]));
3859-
let __CastType2 = dart.typedef('__CastType2', () => dart.functionType(core.double, [core.String]));
3858+
let __CastType0 = dart.typedef('__CastType0', dart.functionType(core.int, [core.String]));
3859+
let __CastType2 = dart.typedef('__CastType2', dart.functionType(core.double, [core.String]));
38603860
// Exports:
38613861
exports.NoSideEffects = NoSideEffects;
38623862
exports.NoThrows = NoThrows;

pkg/dev_compiler/lib/runtime/dart/_native_typed_data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var _native_typed_data = dart.defineLibrary(_native_typed_data, {});
22
var core = dart.import(core);
3-
var typed_data = dart.lazyImport(typed_data);
3+
var typed_data = dart.import(typed_data);
44
var collection = dart.import(collection);
55
var _internal = dart.import(_internal);
66
var _interceptors = dart.lazyImport(_interceptors);

0 commit comments

Comments
 (0)