Skip to content

Commit da405c9

Browse files
committed
Fix some static member emits
Fixes: - Lazy static fields - Jmesserly's suggestion from a previous cl - Private named constructors (was failing at runtime in angular) [email protected] Review URL: https://codereview.chromium.org/1117333002
1 parent d9298be commit da405c9

File tree

7 files changed

+95
-103
lines changed

7 files changed

+95
-103
lines changed

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,15 +351,14 @@ var _internal;
351351
return _Transformation;
352352
});
353353
let _Transformation = _Transformation$();
354-
let _ = dart.JsSymbol('_');
355354
let _f = dart.JsSymbol('_f');
356355
let MappedIterable$ = dart.generic(function(S, T) {
357356
class MappedIterable extends collection.IterableBase$(T) {
358357
MappedIterable(iterable, func) {
359358
if (dart.is(iterable, EfficientLength)) {
360359
return new (EfficientLengthMappedIterable$(S, T))(iterable, func);
361360
}
362-
return new MappedIterable$(S, T)[_](dart.as(iterable, core.Iterable$(S)), func);
361+
return new MappedIterable$(S, T)._(dart.as(iterable, core.Iterable$(S)), func);
363362
}
364363
_(iterable, f) {
365364
this[_iterable] = iterable;
@@ -547,7 +546,7 @@ var _internal;
547546
if (dart.is(iterable, EfficientLength)) {
548547
return new (EfficientLengthTakeIterable$(E))(iterable, takeCount);
549548
}
550-
return new TakeIterable$(E)[_](iterable, takeCount);
549+
return new TakeIterable$(E)._(iterable, takeCount);
551550
}
552551
_(iterable, takeCount) {
553552
this[_iterable] = iterable;
@@ -650,7 +649,7 @@ var _internal;
650649
if (dart.is(iterable, EfficientLength)) {
651650
return new (EfficientLengthSkipIterable$(E))(iterable, count);
652651
}
653-
return new SkipIterable$(E)[_](iterable, count);
652+
return new SkipIterable$(E)._(iterable, count);
654653
}
655654
_(iterable, skipCount) {
656655
this[_iterable] = iterable;
@@ -666,7 +665,7 @@ var _internal;
666665
throw new core.ArgumentError.value(this[_skipCount], "count is not an integer");
667666
}
668667
core.RangeError.checkNotNegative(this[_skipCount], "count");
669-
return new SkipIterable$(E)[_](this[_iterable], dart.notNull(this[_skipCount]) + dart.notNull(count));
668+
return new SkipIterable$(E)._(this[_iterable], dart.notNull(this[_skipCount]) + dart.notNull(count));
670669
}
671670
get [core.$iterator]() {
672671
return new (SkipIterator$(E))(this[_iterable][core.$iterator], this[_skipCount]);

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,6 @@ var _isolate_helper;
471471
}
472472
}
473473
}
474-
let _controlPort = Symbol('_controlPort');
475474
let _scheduledControlEvents = Symbol('_scheduledControlEvents');
476475
let _isExecutingEvent = Symbol('_isExecutingEvent');
477476
let _updateGlobalState = Symbol('_updateGlobalState');
@@ -488,7 +487,7 @@ var _isolate_helper;
488487
this.ports = new (core.Map$(core.int, RawReceivePortImpl))();
489488
this.weakPorts = new (core.Set$(core.int))();
490489
this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE();
491-
this.controlPort = new RawReceivePortImpl[_controlPort]();
490+
this.controlPort = new RawReceivePortImpl._controlPort();
492491
this.pauseCapability = new isolate.Capability();
493492
this.terminateCapability = new isolate.Capability();
494493
this.delayedEvents = dart.setType([], core.List$(_IsolateEvent));

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

Lines changed: 71 additions & 75 deletions
Large diffs are not rendered by default.

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,6 @@ var convert;
487487
let _FusedConverter = _FusedConverter$();
488488
let HTML_ESCAPE = dart.const(new HtmlEscape());
489489
let _name = Symbol('_name');
490-
let _ = Symbol('_');
491490
class HtmlEscapeMode extends core.Object {
492491
_(name, escapeLtGt, escapeQuot, escapeApos, escapeSlash) {
493492
this[_name] = name;
@@ -501,9 +500,9 @@ var convert;
501500
}
502501
}
503502
dart.defineNamedConstructor(HtmlEscapeMode, '_');
504-
HtmlEscapeMode.UNKNOWN = dart.const(new HtmlEscapeMode[_]('unknown', true, true, true, true));
505-
HtmlEscapeMode.ATTRIBUTE = dart.const(new HtmlEscapeMode[_]('attribute', false, true, false, false));
506-
HtmlEscapeMode.ELEMENT = dart.const(new HtmlEscapeMode[_]('element', true, false, false, true));
503+
HtmlEscapeMode.UNKNOWN = dart.const(new HtmlEscapeMode._('unknown', true, true, true, true));
504+
HtmlEscapeMode.ATTRIBUTE = dart.const(new HtmlEscapeMode._('attribute', false, true, false, false));
505+
HtmlEscapeMode.ELEMENT = dart.const(new HtmlEscapeMode._('element', true, false, false, true));
507506
let _convert = Symbol('_convert');
508507
class HtmlEscape extends Converter$(core.String, core.String) {
509508
HtmlEscape(mode) {

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

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ var core;
412412
double.MIN_POSITIVE = 5e-324;
413413
double.MAX_FINITE = 1.7976931348623157e+308;
414414
let _duration = dart.JsSymbol('_duration');
415-
let _microseconds = dart.JsSymbol('_microseconds');
416415
class Duration extends Object {
417416
Duration(opts) {
418417
let days = opts && 'days' in opts ? opts.days : 0;
@@ -427,18 +426,18 @@ var core;
427426
this[_duration] = duration;
428427
}
429428
['+'](other) {
430-
return new Duration[_microseconds](dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
429+
return new Duration._microseconds(dart.notNull(this[_duration]) + dart.notNull(other[_duration]));
431430
}
432431
['-'](other) {
433-
return new Duration[_microseconds](dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
432+
return new Duration._microseconds(dart.notNull(this[_duration]) - dart.notNull(other[_duration]));
434433
}
435434
['*'](factor) {
436-
return new Duration[_microseconds]((dart.notNull(this[_duration]) * dart.notNull(factor)).round());
435+
return new Duration._microseconds((dart.notNull(this[_duration]) * dart.notNull(factor)).round());
437436
}
438437
['~/'](quotient) {
439438
if (quotient == 0)
440439
throw new IntegerDivisionByZeroException();
441-
return new Duration[_microseconds]((dart.notNull(this[_duration]) / dart.notNull(quotient)).truncate());
440+
return new Duration._microseconds((dart.notNull(this[_duration]) / dart.notNull(quotient)).truncate());
442441
}
443442
['<'](other) {
444443
return dart.notNull(this[_duration]) < dart.notNull(other[_duration]);
@@ -514,10 +513,10 @@ var core;
514513
return dart.notNull(this[_duration]) < 0;
515514
}
516515
abs() {
517-
return new Duration[_microseconds](this[_duration].abs());
516+
return new Duration._microseconds(this[_duration].abs());
518517
}
519518
['unary-']() {
520-
return new Duration[_microseconds](-dart.notNull(this[_duration]));
519+
return new Duration._microseconds(-dart.notNull(this[_duration]));
521520
}
522521
}
523522
Duration[dart.implements] = () => [Comparable$(Duration)];
@@ -2006,7 +2005,6 @@ var core;
20062005
let _path = dart.JsSymbol('_path');
20072006
let _query = dart.JsSymbol('_query');
20082007
let _fragment = dart.JsSymbol('_fragment');
2009-
let _internal$ = dart.JsSymbol('_internal');
20102008
let _pathSegments = dart.JsSymbol('_pathSegments');
20112009
let _queryParameters = dart.JsSymbol('_queryParameters');
20122010
let _merge = dart.JsSymbol('_merge');
@@ -2217,7 +2215,7 @@ var core;
22172215
} else if (char == Uri._NUMBER_SIGN) {
22182216
fragment = Uri._makeFragment(uri, dart.notNull(index) + 1, uri.length);
22192217
}
2220-
return new Uri[_internal$](scheme, userinfo, host, port, path, query, fragment);
2218+
return new Uri._internal(scheme, userinfo, host, port, path, query, fragment);
22212219
}
22222220
static _fail(uri, index, message) {
22232221
throw new FormatException(message, uri, index);
@@ -2257,7 +2255,7 @@ var core;
22572255
}
22582256
let ensureLeadingSlash = host != null;
22592257
path = Uri._makePath(path, 0, Uri._stringOrNullLength(path), pathSegments, ensureLeadingSlash, isFile);
2260-
return new Uri[_internal$](scheme, userInfo, host, port, path, query, fragment);
2258+
return new Uri._internal(scheme, userInfo, host, port, path, query, fragment);
22612259
}
22622260
http(authority, unencodedPath, queryParameters) {
22632261
if (queryParameters === void 0)
@@ -2467,7 +2465,7 @@ var core;
24672465
} else if (this.hasFragment) {
24682466
fragment = this.fragment;
24692467
}
2470-
return new Uri[_internal$](scheme, userInfo, host, port, path, query, fragment);
2468+
return new Uri._internal(scheme, userInfo, host, port, path, query, fragment);
24712469
}
24722470
get pathSegments() {
24732471
if (this[_pathSegments] == null) {
@@ -2901,7 +2899,7 @@ var core;
29012899
}
29022900
}
29032901
let fragment = reference.hasFragment ? reference.fragment : null;
2904-
return new Uri[_internal$](targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
2902+
return new Uri._internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment);
29052903
}
29062904
get hasAuthority() {
29072905
return this[_host] != null;

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,14 @@ var typed_data;
44
class ByteBuffer extends core.Object {}
55
class TypedData extends core.Object {}
66
let _littleEndian = Symbol('_littleEndian');
7-
let _ = Symbol('_');
87
class Endianness extends core.Object {
98
_(littleEndian) {
109
this[_littleEndian] = littleEndian;
1110
}
1211
}
1312
dart.defineNamedConstructor(Endianness, '_');
14-
Endianness.BIG_ENDIAN = dart.const(new Endianness[_](false));
15-
Endianness.LITTLE_ENDIAN = dart.const(new Endianness[_](true));
13+
Endianness.BIG_ENDIAN = dart.const(new Endianness._(false));
14+
Endianness.LITTLE_ENDIAN = dart.const(new Endianness._(true));
1615
dart.defineLazyProperties(Endianness, {
1716
get HOST_ENDIAN() {
1817
return new ByteData.view(new Uint16List.fromList(dart.setType([1], core.List$(core.int))).buffer).getInt8(0) == 1 ? Endianness.LITTLE_ENDIAN : Endianness.BIG_ENDIAN;

pkg/dev_compiler/lib/src/codegen/js_codegen.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,7 +1051,8 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
10511051
if (element.enclosingElement is CompilationUnitElement &&
10521052
(element.library != libraryInfo.library ||
10531053
element is TopLevelVariableElement && !element.isConst)) {
1054-
return js.call('#.#', [_libraryName(element.library), name]);
1054+
var memberName = _emitMemberName(name, isStatic: true);
1055+
return js.call('#.#', [_libraryName(element.library), memberName]);
10551056
}
10561057

10571058
// Unqualified class member. This could mean implicit-this, or implicit
@@ -1508,7 +1509,8 @@ class JSCodegenVisitor extends GeneralizingAstVisitor with ConversionVisitor {
15081509
visitConstructorName(ConstructorName node) {
15091510
var typeName = _visit(node.type);
15101511
if (node.name != null) {
1511-
return js.call('#.#', [typeName, _emitMemberName(node.name.name)]);
1512+
return js.call(
1513+
'#.#', [typeName, _emitMemberName(node.name.name, isStatic: true)]);
15121514
}
15131515
return typeName;
15141516
}

0 commit comments

Comments
 (0)