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

Unified Diff: test/codegen_expected/language/callable_test_none_multi.js

Issue 2200913002: fixes #616, statics on callable functions (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 5 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: test/codegen_expected/language/callable_test_none_multi.js
diff --git a/test/codegen_expected/language/callable_test_none_multi.js b/test/codegen_expected/language/callable_test_none_multi.js
index 3737b00a015a29e76baa27f4d6d9eaa0b3077498..ace31834b0bc1f2bb40f34133b976b62a13c6c2a 100644
--- a/test/codegen_expected/language/callable_test_none_multi.js
+++ b/test/codegen_expected/language/callable_test_none_multi.js
@@ -1,16 +1,19 @@
dart_library.library('language/callable_test_none_multi', null, /* Imports */[
- 'dart_sdk'
-], function load__callable_test_none_multi(exports, dart_sdk) {
+ 'dart_sdk',
+ 'expect'
+], function load__callable_test_none_multi(exports, dart_sdk, expect) {
'use strict';
const core = dart_sdk.core;
const dart = dart_sdk.dart;
const dartx = dart_sdk.dartx;
+ const expect$ = expect.expect;
const callable_test_none_multi = Object.create(null);
+ let Z = () => (Z = dart.constFn(callable_test_none_multi.Z$()))();
+ let ZOfint = () => (ZOfint = dart.constFn(callable_test_none_multi.Z$(core.int)))();
let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
callable_test_none_multi.X = dart.callableClass(function X(...args) {
- const self = this;
function call(...args) {
- return self.call.apply(self, args);
+ return call.call.apply(call, args);
}
call.__proto__ = this.__proto__;
call.new.apply(call, args);
@@ -24,21 +27,54 @@ dart_library.library('language/callable_test_none_multi', null, /* Imports */[
methods: () => ({call: dart.definiteFunctionType(dart.dynamic, [])})
});
callable_test_none_multi.Y = dart.callableClass(function Y(...args) {
- const self = this;
function call(...args) {
- return self.call.apply(self, args);
+ return call.call.apply(call, args);
}
call.__proto__ = this.__proto__;
call.new.apply(call, args);
return call;
}, class Y extends core.Object {
call(x) {
- return 87;
+ return 87 + dart.notNull(x);
+ }
+ static staticMethod(x) {
+ return dart.notNull(x) + 1;
}
});
dart.setSignature(callable_test_none_multi.Y, {
- methods: () => ({call: dart.definiteFunctionType(dart.dynamic, [core.int])})
+ methods: () => ({call: dart.definiteFunctionType(dart.dynamic, [core.int])}),
+ statics: () => ({staticMethod: dart.definiteFunctionType(core.int, [core.int])}),
+ names: ['staticMethod']
+ });
+ callable_test_none_multi.Z$ = dart.generic(T => {
+ const Z = dart.callableClass(function Z(...args) {
+ function call(...args) {
+ return call.call.apply(call, args);
+ }
+ call.__proto__ = this.__proto__;
+ call.new.apply(call, args);
+ return call;
+ }, class Z extends core.Object {
+ new(value) {
+ this.value = value;
+ }
+ call() {
+ return this.value;
+ }
+ static staticMethod(x) {
+ return dart.notNull(x) + 1;
+ }
+ });
+ dart.addTypeTests(Z);
+ dart.setSignature(Z, {
+ constructors: () => ({new: dart.definiteFunctionType(callable_test_none_multi.Z$(T), [T])}),
+ methods: () => ({call: dart.definiteFunctionType(dart.dynamic, [])}),
+ statics: () => ({staticMethod: dart.definiteFunctionType(core.int, [core.int])}),
+ names: ['staticMethod']
+ });
+ return Z;
});
+ callable_test_none_multi.Z = Z();
callable_test_none_multi.F = dart.typedef('F', () => dart.functionType(dart.dynamic, [core.int]));
callable_test_none_multi.G = dart.typedef('G', () => dart.functionType(dart.dynamic, [core.String]));
callable_test_none_multi.main = function() {
@@ -47,6 +83,12 @@ dart_library.library('language/callable_test_none_multi', null, /* Imports */[
let y = new callable_test_none_multi.Y();
let g = y;
let f0 = y;
+ expect$.Expect.equals(dart.dcall(f), 42);
+ expect$.Expect.equals(dart.dcall(g, 100), 187);
+ let z = new (ZOfint())(123);
+ expect$.Expect.equals(z(), 123);
+ expect$.Expect.equals(callable_test_none_multi.Y.staticMethod(6), 7);
+ expect$.Expect.equals(callable_test_none_multi.Z.staticMethod(6), 7);
};
dart.fn(callable_test_none_multi.main, VoidTodynamic());
// Exports:
« no previous file with comments | « test/codegen_expected/language/call_with_no_such_method_test.js ('k') | test/codegen_expected/language/cascade2_test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698