Index: test/codegen/expect/corelib/expando_test.js |
diff --git a/test/codegen/expect/corelib/expando_test.js b/test/codegen/expect/corelib/expando_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..57f103fe8e5a418f3a5aab1a179ac33dcae630d1 |
--- /dev/null |
+++ b/test/codegen/expect/corelib/expando_test.js |
@@ -0,0 +1,126 @@ |
+dart_library.library('corelib/expando_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'expect' |
+], function load__expando_test(exports, dart_sdk, expect) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const _interceptors = dart_sdk._interceptors; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const expect$ = expect.expect; |
+ const expando_test = Object.create(null); |
+ let ExpandoOfint = () => (ExpandoOfint = dart.constFn(core.Expando$(core.int)))(); |
+ let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))(); |
+ let JSArrayOfObject = () => (JSArrayOfObject = dart.constFn(_interceptors.JSArray$(core.Object)))(); |
+ let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))(); |
+ let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))(); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ let const$; |
+ let const$0; |
+ expando_test.ExpandoTest = class ExpandoTest extends core.Object { |
+ static testMain() { |
+ expando_test.ExpandoTest.visits = new (ExpandoOfint())('visits'); |
+ let legal = JSArrayOfObject().of([new core.Object(), core.List.new(), JSArrayOfint().of([1, 2, 3]), const$ || (const$ = dart.constList([1, 2, 3], core.int)), core.Map.new(), dart.map({x: 1, y: 2}), const$0 || (const$0 = dart.const(dart.map({x: 1, y: 2}))), new core.Expando(), new core.Expando('horse')]); |
+ for (let object of legal) { |
+ expando_test.ExpandoTest.testNamedExpando(object); |
+ expando_test.ExpandoTest.testUnnamedExpando(object); |
+ } |
+ for (let object of legal) { |
+ expect$.Expect.equals(2, expando_test.ExpandoTest.visits.get(object), dart.str`${object}`); |
+ } |
+ expando_test.ExpandoTest.testIllegal(); |
+ expando_test.ExpandoTest.testIdentity(); |
+ } |
+ static visit(object) { |
+ let count = expando_test.ExpandoTest.visits.get(object); |
+ count = count == null ? 1 : dart.notNull(count) + 1; |
+ expando_test.ExpandoTest.visits.set(object, count); |
+ } |
+ static testNamedExpando(object) { |
+ let expando = new (ExpandoOfint())('myexpando'); |
+ expect$.Expect.equals('myexpando', expando.name); |
+ expect$.Expect.isTrue(expando.toString()[dartx.startsWith]('Expando:myexpando')); |
+ expando_test.ExpandoTest.testExpando(expando, object); |
+ } |
+ static testUnnamedExpando(object) { |
+ let expando = new (ExpandoOfint())(); |
+ expect$.Expect.isNull(expando.name); |
+ expect$.Expect.isTrue(expando.toString()[dartx.startsWith]('Expando:')); |
+ expando_test.ExpandoTest.testExpando(expando, object); |
+ } |
+ static testExpando(expando, object) { |
+ expando_test.ExpandoTest.visit(object); |
+ expect$.Expect.isNull(expando.get(object)); |
+ expando.set(object, 42); |
+ expect$.Expect.equals(42, expando.get(object)); |
+ expando.set(object, null); |
+ expect$.Expect.isNull(expando.get(object)); |
+ let alternative = new (ExpandoOfint())('myexpando'); |
+ expect$.Expect.isNull(alternative.get(object)); |
+ alternative.set(object, 87); |
+ expect$.Expect.isNull(expando.get(object)); |
+ expando.set(object, 99); |
+ expect$.Expect.equals(99, expando.get(object)); |
+ expect$.Expect.equals(87, alternative.get(object)); |
+ } |
+ static testIllegal() { |
+ let expando = new (ExpandoOfint())(); |
+ expect$.Expect.throws(dart.fn(() => expando.get(null), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "null"); |
+ expect$.Expect.throws(dart.fn(() => expando.get('string'), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "'string'"); |
+ expect$.Expect.throws(dart.fn(() => expando.get('string'), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "'string'"); |
+ expect$.Expect.throws(dart.fn(() => expando.get(42), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "42"); |
+ expect$.Expect.throws(dart.fn(() => expando.get(42.87), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "42.87"); |
+ expect$.Expect.throws(dart.fn(() => expando.get(true), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "true"); |
+ expect$.Expect.throws(dart.fn(() => expando.get(false), VoidToint()), dart.fn(exception => core.ArgumentError.is(exception), dynamicTobool()), "false"); |
+ } |
+ static testIdentity() { |
+ let expando = new (ExpandoOfint())(); |
+ let m1 = new expando_test.Mutable(1); |
+ let m2 = new expando_test.Mutable(7); |
+ let m3 = new expando_test.Mutable(13); |
+ expando.set(m1, 42); |
+ expect$.Expect.equals(42, expando.get(m1)); |
+ m1.id = 37; |
+ expect$.Expect.equals(42, expando.get(m1)); |
+ expando.set(m2, 37); |
+ expando.set(m3, 10); |
+ m3.id = 1; |
+ expect$.Expect.equals(42, expando.get(m1)); |
+ expect$.Expect.equals(37, expando.get(m2)); |
+ expect$.Expect.equals(10, expando.get(m3)); |
+ } |
+ }; |
+ dart.setSignature(expando_test.ExpandoTest, { |
+ statics: () => ({ |
+ testMain: dart.definiteFunctionType(dart.dynamic, []), |
+ visit: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]), |
+ testNamedExpando: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]), |
+ testUnnamedExpando: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]), |
+ testExpando: dart.definiteFunctionType(dart.dynamic, [core.Expando$(core.int), dart.dynamic]), |
+ testIllegal: dart.definiteFunctionType(dart.dynamic, []), |
+ testIdentity: dart.definiteFunctionType(dart.dynamic, []) |
+ }), |
+ names: ['testMain', 'visit', 'testNamedExpando', 'testUnnamedExpando', 'testExpando', 'testIllegal', 'testIdentity'] |
+ }); |
+ expando_test.ExpandoTest.visits = null; |
+ expando_test.main = function() { |
+ return expando_test.ExpandoTest.testMain(); |
+ }; |
+ dart.fn(expando_test.main, VoidTodynamic()); |
+ expando_test.Mutable = class Mutable extends core.Object { |
+ new(id) { |
+ this.id = id; |
+ } |
+ get hashCode() { |
+ return this.id; |
+ } |
+ ['=='](other) { |
+ return expando_test.Mutable.is(other) && other.id == this.id; |
+ } |
+ }; |
+ dart.setSignature(expando_test.Mutable, { |
+ constructors: () => ({new: dart.definiteFunctionType(expando_test.Mutable, [core.int])}) |
+ }); |
+ // Exports: |
+ exports.expando_test = expando_test; |
+}); |