Index: test/codegen/expect/language/methods_as_constants_test.js |
diff --git a/test/codegen/expect/language/methods_as_constants_test.js b/test/codegen/expect/language/methods_as_constants_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f1466dd6354af35a112c2825340b7ee15393ab1b |
--- /dev/null |
+++ b/test/codegen/expect/language/methods_as_constants_test.js |
@@ -0,0 +1,87 @@ |
+dart_library.library('language/methods_as_constants_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'expect' |
+], function load__methods_as_constants_test(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 methods_as_constants_test = Object.create(null); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ methods_as_constants_test.topLevelMethod = function() { |
+ return 't'; |
+ }; |
+ dart.fn(methods_as_constants_test.topLevelMethod, VoidTodynamic()); |
+ methods_as_constants_test.topLevelFieldForTopLevelMethod = methods_as_constants_test.topLevelMethod; |
+ methods_as_constants_test.A = class A extends core.Object { |
+ new(closure) { |
+ this.closure = closure; |
+ } |
+ defaultTopLevel(closure) { |
+ if (closure === void 0) closure = methods_as_constants_test.topLevelMethod; |
+ this.closure = closure; |
+ } |
+ defaultStatic(closure) { |
+ if (closure === void 0) closure = methods_as_constants_test.A.staticMethod; |
+ this.closure = closure; |
+ } |
+ defaultStatic2(closure) { |
+ if (closure === void 0) closure = methods_as_constants_test.A.staticMethod; |
+ this.closure = closure; |
+ } |
+ run() { |
+ return dart.dcall(this.closure); |
+ } |
+ static staticMethod() { |
+ return 's'; |
+ } |
+ }; |
+ dart.defineNamedConstructor(methods_as_constants_test.A, 'defaultTopLevel'); |
+ dart.defineNamedConstructor(methods_as_constants_test.A, 'defaultStatic'); |
+ dart.defineNamedConstructor(methods_as_constants_test.A, 'defaultStatic2'); |
+ dart.setSignature(methods_as_constants_test.A, { |
+ constructors: () => ({ |
+ new: dart.definiteFunctionType(methods_as_constants_test.A, [core.Function]), |
+ defaultTopLevel: dart.definiteFunctionType(methods_as_constants_test.A, [], [core.Function]), |
+ defaultStatic: dart.definiteFunctionType(methods_as_constants_test.A, [], [core.Function]), |
+ defaultStatic2: dart.definiteFunctionType(methods_as_constants_test.A, [], [core.Function]) |
+ }), |
+ methods: () => ({run: dart.definiteFunctionType(dart.dynamic, [])}), |
+ statics: () => ({staticMethod: dart.definiteFunctionType(dart.dynamic, [])}), |
+ names: ['staticMethod'] |
+ }); |
+ methods_as_constants_test.A.staticFieldForTopLevelMethod = methods_as_constants_test.topLevelMethod; |
+ dart.defineLazy(methods_as_constants_test.A, { |
+ get staticFieldForStaticMethod() { |
+ return methods_as_constants_test.A.staticMethod; |
+ } |
+ }); |
+ methods_as_constants_test.topLevelFieldForStaticMethod = methods_as_constants_test.A.staticMethod; |
+ let const$; |
+ let const$0; |
+ let const$1; |
+ let const$2; |
+ let const$3; |
+ let const$4; |
+ methods_as_constants_test.main = function() { |
+ expect$.Expect.equals('t', (const$ || (const$ = dart.const(new methods_as_constants_test.A(methods_as_constants_test.topLevelMethod)))).run()); |
+ expect$.Expect.equals('s', (const$0 || (const$0 = dart.const(new methods_as_constants_test.A(methods_as_constants_test.A.staticMethod)))).run()); |
+ expect$.Expect.equals('t', (const$1 || (const$1 = dart.const(new methods_as_constants_test.A.defaultTopLevel()))).run()); |
+ expect$.Expect.equals('s', (const$2 || (const$2 = dart.const(new methods_as_constants_test.A.defaultStatic()))).run()); |
+ expect$.Expect.equals('s', (const$3 || (const$3 = dart.const(new methods_as_constants_test.A.defaultStatic2()))).run()); |
+ expect$.Expect.equals('t', new methods_as_constants_test.A.defaultTopLevel().run()); |
+ expect$.Expect.equals('s', new methods_as_constants_test.A.defaultStatic().run()); |
+ expect$.Expect.equals('s', new methods_as_constants_test.A.defaultStatic2().run()); |
+ expect$.Expect.equals('t', methods_as_constants_test.topLevelFieldForTopLevelMethod()); |
+ expect$.Expect.equals('s', methods_as_constants_test.topLevelFieldForStaticMethod()); |
+ expect$.Expect.equals('t', methods_as_constants_test.A.staticFieldForTopLevelMethod()); |
+ expect$.Expect.equals('s', methods_as_constants_test.A.staticFieldForStaticMethod()); |
+ let map = const$4 || (const$4 = dart.const(dart.map({t: methods_as_constants_test.topLevelMethod, s: methods_as_constants_test.A.staticMethod}))); |
+ expect$.Expect.equals('t', map[dartx.get]('t')()); |
+ expect$.Expect.equals('s', map[dartx.get]('s')()); |
+ }; |
+ dart.fn(methods_as_constants_test.main, VoidTodynamic()); |
+ // Exports: |
+ exports.methods_as_constants_test = methods_as_constants_test; |
+}); |