Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Unified Diff: pkg/dev_compiler/test/browser/runtime_tests.js

Issue 2934623003: fix #29753, use ES5 constructors for ddc (Closed)
Patch Set: rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/dev_compiler/test/browser/runtime_tests.js
diff --git a/pkg/dev_compiler/test/browser/runtime_tests.js b/pkg/dev_compiler/test/browser/runtime_tests.js
index 334c8b7837138d58d8854733808d13f925cffdb5..b50ad57a91ce0da9549fbba188c2ec5471d482df 100644
--- a/pkg/dev_compiler/test/browser/runtime_tests.js
+++ b/pkg/dev_compiler/test/browser/runtime_tests.js
@@ -178,11 +178,20 @@ define(['dart_sdk'], function(dart_sdk) {
class B extends A {}
class C extends B {}
- let AA$ = generic((T, U) => class AA extends core.Object {});
+ let AA$ = generic((T, U) => {
+ class AA extends core.Object {}
+ (AA.new = function() {}).prototype = AA.prototype;
+ return AA;
+ });
let AA = AA$();
- let BB$ = generic((T, U) => class BB extends AA$(U, T) {});
+ let BB$ = generic((T, U) => {
+ class BB extends AA$(U, T) {}
+ (BB.new = function() {}).prototype = BB.prototype;
+ return BB;
+ });
let BB = BB$();
class CC extends BB$(String, List) {}
+ (CC.new = function() {}).prototype = CC.prototype;
let Func2 = typedef('Func2', () => fnTypeFuzzy(dynamic, [dynamic, dynamic]));
let Foo = typedef('Foo', () => fnTypeFuzzy(B, [B, String]));
@@ -286,7 +295,7 @@ define(['dart_sdk'], function(dart_sdk) {
test('dynamic', () => {
expect(isGroundType(dynamic), true);
- checkType(new Object(), dynamic);
+ checkType(new Object.new(), dynamic);
checkType(null, dynamic);
expect(cast(null, dynamic), null);
@@ -294,7 +303,7 @@ define(['dart_sdk'], function(dart_sdk) {
test('Object', () => {
expect(isGroundType(Object), true);
- checkType(new Object(), dynamic);
+ checkType(new Object.new(), dynamic);
checkType(null, Object);
expect(cast(null, Object), null);
@@ -339,13 +348,12 @@ define(['dart_sdk'], function(dart_sdk) {
});
test('Map', () => {
- let m1 = new (Map$(String, String))();
- let m2 = new (Map$(Object, Object))();
- let m3 = new Map();
- let m4 = new (collection.HashMap$(dart.dynamic, dart.dynamic))();
- let m5 = new collection.LinkedHashMap();
- let m6 = new (Map$(String, dart.dynamic))();
-
+ let m1 = Map$(String, String).new();
+ let m2 = Map$(Object, Object).new();
+ let m3 = Map.new();
+ let m4 = collection.HashMap$(dart.dynamic, dart.dynamic).new();
+ let m5 = collection.LinkedHashMap.new();
+ let m6 = Map$(String, dart.dynamic).new();
expect(isGroundType(Map), true);
expect(isGroundType(getReifiedType(m1)), false);
@@ -405,10 +413,9 @@ define(['dart_sdk'], function(dart_sdk) {
test('constructors', () => {
class C extends core.Object {
- new(x) {};
- named(x, y) {};
}
- dart.defineNamedConstructor(C, 'named');
+ (C.new = function(x) {}).prototype = C.prototype;
+ (C.named = function(x, y) {}).prototype = C.prototype;
dart.setSignature(C, {
constructors: () => ({
new: dart.fnType(C, [core.int]),
@@ -426,19 +433,19 @@ define(['dart_sdk'], function(dart_sdk) {
});
test('generic and inheritance', () => {
- let aaraw = new AA();
+ let aaraw = new AA.new();
let aarawtype = getReifiedType(aaraw);
- let aadynamic = new (AA$(dynamic, dynamic))();
+ let aadynamic = new (AA$(dynamic, dynamic).new)();
let aadynamictype = getReifiedType(aadynamic);
- let aa = new (AA$(String, List))();
+ let aa = new (AA$(String, List).new)();
let aatype = getReifiedType(aa);
- let bb = new (BB$(String, List))();
+ let bb = new (BB$(String, List).new)();
let bbtype = getReifiedType(bb);
- let cc = new CC();
+ let cc = new CC.new();
let cctype = getReifiedType(cc);
// We don't allow constructing bad types.
// This was AA<String> in Dart (wrong number of type args).
- let aabad = new (AA$(dart.dynamic, dart.dynamic))();
+ let aabad = new (AA$(dart.dynamic, dart.dynamic).new)();
let aabadtype = getReifiedType(aabad);
expect(isGroundType(aatype), false);
@@ -477,7 +484,7 @@ define(['dart_sdk'], function(dart_sdk) {
test('mixins', () => {
let c = collection;
- var s1 = new (c.SplayTreeSet$(String))();
+ var s1 = new (c.SplayTreeSet$(String).new)();
checkType(s1, c.IterableMixin);
checkType(s1, c.IterableMixin$(String));
@@ -600,15 +607,15 @@ define(['dart_sdk'], function(dart_sdk) {
test('dsend', () => {
class Tester extends core.Object {
- new() {
- this.f = dart.fn(x => x,
- dart.fnType(core.int, [core.int]));
- this.me = this;
- }
m(x, y) {return x;}
call(x) {return x;}
static s(x, y) { return x;}
}
+ (Tester.new = function() {
+ this.f = dart.fn(x => x,
+ dart.fnType(core.int, [core.int]));
+ this.me = this;
+ }).prototype = Tester.prototype;
dart.setSignature(Tester, {
methods: () => ({
m: dart.fnType(core.int, [core.int, core.int]),
@@ -619,7 +626,7 @@ define(['dart_sdk'], function(dart_sdk) {
}),
names: ['s']
})
- let o = new Tester();
+ let o = new Tester.new();
// Method send
assert.equal(dart.dsend(o, 'm', 3, 4), 3);
@@ -718,14 +725,14 @@ define(['dart_sdk'], function(dart_sdk) {
test('Method tearoffs', () => {
let c = collection;
// Tear off of an inherited method
- let map = new (Map$(core.int, core.String))();
+ let map = Map$(core.int, core.String).new();
checkType(dart.bind(map, 'toString'),
dart.fnTypeFuzzy(String, []));
checkType(dart.bind(map, 'toString'),
dart.fnTypeFuzzy(int, []), false, true);
// Tear off of a method directly on the object
- let smap = new (c.SplayTreeMap$(core.int, core.String))();
+ let smap = new (c.SplayTreeMap$(core.int, core.String).new)();
checkType(dart.bind(smap, 'forEach'),
dart.fnTypeFuzzy(dart.void,
[dart.fnTypeFuzzy(dart.void, [core.int, core.String])]));
@@ -735,7 +742,7 @@ define(['dart_sdk'], function(dart_sdk) {
[core.String, core.String])]), false, true);
// Tear off of a mixed in method
- let mapB = new (c.MapBase$(core.int, core.int))();
+ let mapB = new (c.MapBase$(core.int, core.int).new)();
checkType(dart.bind(mapB, 'forEach'),
dart.fnTypeFuzzy(dart.void, [
dart.fnTypeFuzzy(dart.void, [core.int, core.int])]));
@@ -745,7 +752,7 @@ define(['dart_sdk'], function(dart_sdk) {
false, true);
// Tear off of a method with a symbol name
- let listB = new (c.ListBase$(core.int))();
+ let listB = new (c.ListBase$(core.int).new)();
checkType(dart.bind(listB, dartx.add),
dart.fnTypeFuzzy(dart.void, [core.int]));
checkType(dart.bind(listB, dartx.add),
@@ -795,22 +802,21 @@ define(['dart_sdk'], function(dart_sdk) {
})
});
- class O extends dart.mixin(Base, M1, M2) {
- new() {};
- };
+ class O extends dart.mixin(Base, M1, M2) {}
+ (O.new = function() {}).prototype = O.prototype;
dart.setSignature(O, {});
- var obj = new O();
+ var obj = new O.new();
var m = dart.bind(obj, 'm');
checkType(m, dart.fnTypeFuzzy(core.Object, [core.int]));
checkType(m, dart.fnTypeFuzzy(core.int, [core.int]), false, true);
// Test inherited signatures
class P extends O {
- new() {};
m(x) {return x;};
};
+ (P.new = function() {}).prototype = P.prototype;
dart.setSignature(P, {});
- var obj = new P();
+ var obj = new P.new();
var m = dart.bind(obj, 'm');
checkType(m, dart.fnTypeFuzzy(core.Object, [core.int]));
checkType(m, dart.fnTypeFuzzy(core.int, [core.int]), false, true);
@@ -822,7 +828,7 @@ define(['dart_sdk'], function(dart_sdk) {
let nullString = dart.toString(null);
assert.equal(nullString, 'null');
- let map = new Map();
+ let map = Map.new();
let mapHash = dart.hashCode(map);
checkType(mapHash, core.int);
assert.equal(mapHash, map.hashCode);
@@ -1143,7 +1149,11 @@ define(['dart_sdk'], function(dart_sdk) {
});
test('mixed types', () => {
- let AA$ = dart.generic((T) => class AA extends core.Object {});
+ let AA$ = dart.generic((T) => {
+ class AA extends core.Object {}
+ (AA.new = function() {}).prototype = AA.prototype;
+ return AA;
+ });
always(int, dyn);
maybe(dyn, int);
@@ -1184,7 +1194,11 @@ define(['dart_sdk'], function(dart_sdk) {
class A {}
- let AA$ = generic((T, U) => class AA extends core.Object {});
+ let AA$ = generic((T, U) => {
+ class AA extends core.Object {}
+ (AA.new = function() {}).prototype = AA.prototype;
+ return AA;
+ });
let AA = AA$();
let Func2 = typedef('Func2', () => fnTypeFuzzy(dynamic, [dynamic, dynamic]));
@@ -1274,7 +1288,7 @@ define(['dart_sdk'], function(dart_sdk) {
'use strict';
test('fixed length list', () => {
- let list = new core.List(10);
+ let list = core.List.new(10);
list[0] = 42;
assert.throws(() => list.add(42));
});
« no previous file with comments | « pkg/dev_compiler/test/browser/language_tests.js ('k') | pkg/dev_compiler/test/codegen_expected/BenchmarkBase.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698