| Index: test/codegen/expect/corelib/apply_test.js
|
| diff --git a/test/codegen/expect/corelib/apply_test.js b/test/codegen/expect/corelib/apply_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9ba6a80dfe5143f6bb7d0282bcadaba0fab67467
|
| --- /dev/null
|
| +++ b/test/codegen/expect/corelib/apply_test.js
|
| @@ -0,0 +1,132 @@
|
| +dart_library.library('corelib/apply_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__apply_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 apply_test = Object.create(null);
|
| + const symbol_map_helper = Object.create(null);
|
| + let MapOfString$dynamic = () => (MapOfString$dynamic = dart.constFn(core.Map$(core.String, dart.dynamic)))();
|
| + let MapOfSymbol$dynamic = () => (MapOfSymbol$dynamic = dart.constFn(core.Map$(core.Symbol, dart.dynamic)))();
|
| + 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 __Toint = () => (__Toint = dart.constFn(dart.definiteFunctionType(core.int, [], {a: core.int})))();
|
| + let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
|
| + let int__Toint = () => (int__Toint = dart.constFn(dart.definiteFunctionType(core.int, [core.int], {a: core.int})))();
|
| + let intAndintToint = () => (intAndintToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int])))();
|
| + let intAndint__Toint = () => (intAndint__Toint = dart.constFn(dart.definiteFunctionType(core.int, [core.int, core.int], {a: core.int})))();
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + let dynamicAnddynamicAnddynamicTodynamic = () => (dynamicAnddynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic])))();
|
| + let dynamicAnddynamicAnddynamic__Todynamic = () => (dynamicAnddynamicAnddynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
|
| + let MapOfString$dynamicToMapOfSymbol$dynamic = () => (MapOfString$dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [MapOfString$dynamic()])))();
|
| + apply_test.test0 = function() {
|
| + return 42;
|
| + };
|
| + dart.fn(apply_test.test0, VoidToint());
|
| + apply_test.test0a = function(opts) {
|
| + let a = opts && 'a' in opts ? opts.a : null;
|
| + return 37 + dart.notNull(a);
|
| + };
|
| + dart.fn(apply_test.test0a, __Toint());
|
| + apply_test.test1 = function(i) {
|
| + return dart.notNull(i) + 1;
|
| + };
|
| + dart.fn(apply_test.test1, intToint());
|
| + apply_test.test1a = function(i, opts) {
|
| + let a = opts && 'a' in opts ? opts.a : null;
|
| + return dart.notNull(i) + dart.notNull(a);
|
| + };
|
| + dart.fn(apply_test.test1a, int__Toint());
|
| + apply_test.test2 = function(i, j) {
|
| + return dart.notNull(i) + dart.notNull(j);
|
| + };
|
| + dart.fn(apply_test.test2, intAndintToint());
|
| + apply_test.test2a = function(i, j, opts) {
|
| + let a = opts && 'a' in opts ? opts.a : null;
|
| + return dart.notNull(i) + dart.notNull(j) + dart.notNull(a);
|
| + };
|
| + dart.fn(apply_test.test2a, intAndint__Toint());
|
| + apply_test.C = class C extends core.Object {
|
| + new() {
|
| + this.x = 10;
|
| + }
|
| + foo(y) {
|
| + return dart.asInt(dart.notNull(this.x) + dart.notNull(core.num._check(y)));
|
| + }
|
| + };
|
| + dart.setSignature(apply_test.C, {
|
| + methods: () => ({foo: dart.definiteFunctionType(core.int, [dart.dynamic])})
|
| + });
|
| + apply_test.Callable = dart.callableClass(function Callable(...args) {
|
| + const self = this;
|
| + function call(...args) {
|
| + return self.call.apply(self, args);
|
| + }
|
| + call.__proto__ = this.__proto__;
|
| + call.new.apply(call, args);
|
| + return call;
|
| + }, class Callable extends core.Object {
|
| + call(x, y) {
|
| + return dart.notNull(x) + dart.notNull(y);
|
| + }
|
| + });
|
| + dart.setSignature(apply_test.Callable, {
|
| + methods: () => ({call: dart.definiteFunctionType(core.int, [core.int, core.int])})
|
| + });
|
| + apply_test.confuse = function(x) {
|
| + return x;
|
| + };
|
| + dart.fn(apply_test.confuse, dynamicTodynamic());
|
| + apply_test.main = function() {
|
| + function testMap(res, func, map) {
|
| + map = symbol_map_helper.symbolMapToStringMap(MapOfString$dynamic()._check(map));
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), null, MapOfSymbol$dynamic()._check(map)));
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), [], MapOfSymbol$dynamic()._check(map)));
|
| + }
|
| + dart.fn(testMap, dynamicAnddynamicAnddynamicTodynamic());
|
| + function testList(res, func, list) {
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), core.List._check(list)));
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), core.List._check(list), null));
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), core.List._check(list), MapOfSymbol$dynamic().new()));
|
| + }
|
| + dart.fn(testList, dynamicAnddynamicAnddynamicTodynamic());
|
| + function test(res, func, list, map) {
|
| + map = symbol_map_helper.symbolMapToStringMap(MapOfString$dynamic()._check(map));
|
| + expect$.Expect.equals(res, core.Function.apply(core.Function._check(func), core.List._check(list), MapOfSymbol$dynamic()._check(map)));
|
| + }
|
| + dart.fn(test, dynamicAnddynamicAnddynamic__Todynamic());
|
| + testList(42, apply_test.test0, null);
|
| + testList(42, apply_test.test0, []);
|
| + testMap(42, apply_test.test0a, dart.map({a: 5}));
|
| + testList(42, apply_test.test1, JSArrayOfint().of([41]));
|
| + test(42, apply_test.test1a, JSArrayOfint().of([20]), dart.map({a: 22}));
|
| + testList(42, apply_test.test2, JSArrayOfint().of([20, 22]));
|
| + test(42, apply_test.test2a, JSArrayOfint().of([10, 15]), dart.map({a: 17}));
|
| + let cfoo = dart.bind(new apply_test.C(), 'foo');
|
| + testList(42, cfoo, JSArrayOfint().of([32]));
|
| + let app = apply_test.confuse(core.Function.apply);
|
| + expect$.Expect.equals(42, dart.dcall(app, apply_test.test2, JSArrayOfint().of([22, 20])));
|
| + expect$.Expect.equals(42, core.Function.apply(core.Function.apply, JSArrayOfObject().of([apply_test.test2, JSArrayOfint().of([17, 25])])));
|
| + testList(42, new apply_test.Callable(), JSArrayOfint().of([13, 29]));
|
| + };
|
| + dart.fn(apply_test.main, VoidTodynamic());
|
| + symbol_map_helper.symbolMapToStringMap = function(map) {
|
| + if (map == null) return null;
|
| + let result = MapOfSymbol$dynamic().new();
|
| + map[dartx.forEach](dart.fn((name, value) => {
|
| + result[dartx.set](core.Symbol.new(name), value);
|
| + }, StringAnddynamicTovoid()));
|
| + return result;
|
| + };
|
| + dart.fn(symbol_map_helper.symbolMapToStringMap, MapOfString$dynamicToMapOfSymbol$dynamic());
|
| + // Exports:
|
| + exports.apply_test = apply_test;
|
| + exports.symbol_map_helper = symbol_map_helper;
|
| +});
|
|
|