Index: test/codegen/expect/corelib/iterable_expand_test.js |
diff --git a/test/codegen/expect/corelib/iterable_expand_test.js b/test/codegen/expect/corelib/iterable_expand_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e4a63a57a4fa300203e4063d0f639cfa36f7a2a9 |
--- /dev/null |
+++ b/test/codegen/expect/corelib/iterable_expand_test.js |
@@ -0,0 +1,104 @@ |
+dart_library.library('corelib/iterable_expand_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'expect' |
+], function load__iterable_expand_test(exports, dart_sdk, expect) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const collection = dart_sdk.collection; |
+ const _interceptors = dart_sdk._interceptors; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const expect$ = expect.expect; |
+ const iterable_expand_test = Object.create(null); |
+ let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))(); |
+ let ListOfint = () => (ListOfint = dart.constFn(core.List$(core.int)))(); |
+ let IterableOfint = () => (IterableOfint = dart.constFn(core.Iterable$(core.int)))(); |
+ let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))(); |
+ let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))(); |
+ let intToIterable = () => (intToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [core.int])))(); |
+ let intToListOfint = () => (intToListOfint = dart.constFn(dart.definiteFunctionType(ListOfint(), [core.int])))(); |
+ let intToList = () => (intToList = dart.constFn(dart.definiteFunctionType(core.List, [core.int])))(); |
+ let intToIterableOfint = () => (intToIterableOfint = dart.constFn(dart.definiteFunctionType(IterableOfint(), [core.int])))(); |
+ let dynamicToList = () => (dynamicToList = dart.constFn(dart.definiteFunctionType(core.List, [dart.dynamic])))(); |
+ let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))(); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ iterable_expand_test.MyList = class MyList extends collection.ListBase { |
+ new(list) { |
+ this.list = list; |
+ } |
+ get length() { |
+ return this.list[dartx.length]; |
+ } |
+ set length(val) { |
+ this.list[dartx.length] = val; |
+ } |
+ get(index) { |
+ return this.list[dartx.get](index); |
+ } |
+ set(index, val) { |
+ (() => { |
+ return this.list[dartx.set](index, val); |
+ })(); |
+ return val; |
+ } |
+ toString() { |
+ return "[" + dart.notNull(this[dartx.join](", ")) + "]"; |
+ } |
+ }; |
+ dart.addSimpleTypeTests(iterable_expand_test.MyList); |
+ dart.setSignature(iterable_expand_test.MyList, { |
+ constructors: () => ({new: dart.definiteFunctionType(iterable_expand_test.MyList, [core.List])}), |
+ methods: () => ({ |
+ get: dart.definiteFunctionType(dart.dynamic, [core.int]), |
+ set: dart.definiteFunctionType(dart.void, [core.int, dart.dynamic]) |
+ }) |
+ }); |
+ dart.defineExtensionMembers(iterable_expand_test.MyList, [ |
+ 'get', |
+ 'set', |
+ 'toString', |
+ 'length', |
+ 'length' |
+ ]); |
+ iterable_expand_test.main = function() { |
+ function test(expectation, iterable) { |
+ expect$.Expect.listEquals(core.List._check(expectation), core.List._check(dart.dsend(iterable, 'toList'))); |
+ } |
+ dart.fn(test, dynamicAnddynamicTodynamic()); |
+ test([], [][dartx.expand](dart.dynamic)(dart.fn(x => { |
+ dart.throw("not called"); |
+ }, dynamicToIterable()))); |
+ JSArrayOfint().of([1])[dartx.expand](dart.dynamic)(dart.fn(x => { |
+ dart.throw("not called"); |
+ }, intToIterable())); |
+ test(JSArrayOfint().of([1]), JSArrayOfint().of([1])[dartx.expand](core.int)(dart.fn(x => JSArrayOfint().of([x]), intToListOfint()))); |
+ test(JSArrayOfint().of([1, 2, 3]), JSArrayOfint().of([1, 2, 3])[dartx.expand](core.int)(dart.fn(x => JSArrayOfint().of([x]), intToListOfint()))); |
+ test([], JSArrayOfint().of([1])[dartx.expand](dart.dynamic)(dart.fn(x => [], intToList()))); |
+ test([], JSArrayOfint().of([1, 2, 3])[dartx.expand](dart.dynamic)(dart.fn(x => [], intToList()))); |
+ test(JSArrayOfint().of([2]), JSArrayOfint().of([1, 2, 3])[dartx.expand](dart.dynamic)(dart.fn(x => x == 2 ? JSArrayOfint().of([2]) : [], intToList()))); |
+ test(JSArrayOfint().of([1, 1, 2, 2, 3, 3]), JSArrayOfint().of([1, 2, 3])[dartx.expand](core.int)(dart.fn(x => JSArrayOfint().of([x, x]), intToListOfint()))); |
+ test(JSArrayOfint().of([1, 1, 2]), JSArrayOfint().of([1, 2, 3])[dartx.expand](core.int)(dart.fn(x => JSArrayOfint().of([x, x, x])[dartx.skip](x), intToIterableOfint()))); |
+ test(JSArrayOfint().of([1]), new iterable_expand_test.MyList(JSArrayOfint().of([1])).expand(dart.dynamic)(dart.fn(x => [x], dynamicToList()))); |
+ test(JSArrayOfint().of([1, 2, 3]), new iterable_expand_test.MyList(JSArrayOfint().of([1, 2, 3])).expand(dart.dynamic)(dart.fn(x => [x], dynamicToList()))); |
+ test([], new iterable_expand_test.MyList(JSArrayOfint().of([1])).expand(dart.dynamic)(dart.fn(x => [], dynamicToList()))); |
+ test([], new iterable_expand_test.MyList(JSArrayOfint().of([1, 2, 3])).expand(dart.dynamic)(dart.fn(x => [], dynamicToList()))); |
+ test(JSArrayOfint().of([2]), new iterable_expand_test.MyList(JSArrayOfint().of([1, 2, 3])).expand(dart.dynamic)(dart.fn(x => dart.equals(x, 2) ? JSArrayOfint().of([2]) : [], dynamicToList()))); |
+ test(JSArrayOfint().of([1, 1, 2, 2, 3, 3]), new iterable_expand_test.MyList(JSArrayOfint().of([1, 2, 3])).expand(dart.dynamic)(dart.fn(x => [x, x], dynamicToList()))); |
+ test(JSArrayOfint().of([1, 1, 2]), new iterable_expand_test.MyList(JSArrayOfint().of([1, 2, 3])).expand(dart.dynamic)(dart.fn(x => [x, x, x][dartx.skip](core.int._check(x)), dynamicToIterable()))); |
+ let iterable = JSArrayOfint().of([1, 2, 3])[dartx.expand](dart.dynamic)(dart.fn(x => { |
+ if (x == 2) dart.throw("FAIL"); |
+ return JSArrayOfint().of([x, x]); |
+ }, intToIterable())); |
+ let it = iterable[dartx.iterator]; |
+ expect$.Expect.isTrue(it.moveNext()); |
+ expect$.Expect.equals(1, it.current); |
+ expect$.Expect.isTrue(it.moveNext()); |
+ expect$.Expect.equals(1, it.current); |
+ expect$.Expect.throws(dart.bind(it, 'moveNext'), dart.fn(e => dart.equals(e, "FAIL"), dynamicTobool())); |
+ expect$.Expect.equals(null, it.current); |
+ expect$.Expect.isFalse(it.moveNext()); |
+ }; |
+ dart.fn(iterable_expand_test.main, VoidTodynamic()); |
+ // Exports: |
+ exports.iterable_expand_test = iterable_expand_test; |
+}); |