mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:58:29 +00:00
[dart2js] Adding external member test for dump info
Change-Id: I3f1541771a016d88e123252918bc648302887918 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241992 Auto-Submit: Mark Zhou <markzipan@google.com> Reviewed-by: Joshua Litt <joshualitt@google.com> Commit-Queue: Mark Zhou <markzipan@google.com>
This commit is contained in:
parent
cf36021633
commit
3216e8ccb6
199
pkg/compiler/test/dump_info/data/js_members.dart
Normal file
199
pkg/compiler/test/dump_info/data/js_members.dart
Normal file
|
@ -0,0 +1,199 @@
|
|||
@JS()
|
||||
library js_parameters_test;
|
||||
|
||||
import 'package:js/js.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
|
||||
@JS()
|
||||
external void eval(String code);
|
||||
|
||||
@JS()
|
||||
class Foo {
|
||||
external factory Foo();
|
||||
/*member: Foo.singleArg:function=[{
|
||||
"id": "function/memory:sdk/tests/web/native/main.dart::Foo.singleArg",
|
||||
"kind": "function",
|
||||
"name": "singleArg",
|
||||
"size": 70,
|
||||
"outputUnit": "outputUnit/main",
|
||||
"parent": "class/memory:sdk/tests/web/native/main.dart::Foo",
|
||||
"children": [],
|
||||
"modifiers": {
|
||||
"static": false,
|
||||
"const": false,
|
||||
"factory": false,
|
||||
"external": true
|
||||
},
|
||||
"returnType": "dynamic",
|
||||
"inferredReturnType": "[null|subclass=Object]",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "a",
|
||||
"type": "[exact=JSUInt31]",
|
||||
"declaredType": "dynamic"
|
||||
}
|
||||
],
|
||||
"sideEffects": "SideEffects(reads anything; writes anything)",
|
||||
"inlinedCount": 0,
|
||||
"code": "singleArg$1(receiver, p0) {\n return receiver.singleArg(p0);\n }",
|
||||
"type": "dynamic Function(dynamic)"
|
||||
}]*/
|
||||
external singleArg(a);
|
||||
/*member: Foo.singlePositionalArg:function=[{
|
||||
"id": "function/memory:sdk/tests/web/native/main.dart::Foo.singlePositionalArg",
|
||||
"kind": "function",
|
||||
"name": "singlePositionalArg",
|
||||
"size": 174,
|
||||
"outputUnit": "outputUnit/main",
|
||||
"parent": "class/memory:sdk/tests/web/native/main.dart::Foo",
|
||||
"children": [],
|
||||
"modifiers": {
|
||||
"static": false,
|
||||
"const": false,
|
||||
"factory": false,
|
||||
"external": true
|
||||
},
|
||||
"returnType": "dynamic",
|
||||
"inferredReturnType": "[null|subclass=Object]",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "a",
|
||||
"type": "[null|exact=JSUInt31]",
|
||||
"declaredType": "dynamic"
|
||||
}
|
||||
],
|
||||
"sideEffects": "SideEffects(reads anything; writes anything)",
|
||||
"inlinedCount": 0,
|
||||
"code": "singlePositionalArg$1(receiver, p0) {\n return receiver.singlePositionalArg(p0);\n }\nsinglePositionalArg$0(receiver) {\n return receiver.singlePositionalArg();\n }",
|
||||
"type": "dynamic Function([dynamic])"
|
||||
}]*/
|
||||
external singlePositionalArg([dynamic? a]);
|
||||
/*member: Foo.mixedPositionalArgs:function=[{
|
||||
"id": "function/memory:sdk/tests/web/native/main.dart::Foo.mixedPositionalArgs",
|
||||
"kind": "function",
|
||||
"name": "mixedPositionalArgs",
|
||||
"size": 188,
|
||||
"outputUnit": "outputUnit/main",
|
||||
"parent": "class/memory:sdk/tests/web/native/main.dart::Foo",
|
||||
"children": [],
|
||||
"modifiers": {
|
||||
"static": false,
|
||||
"const": false,
|
||||
"factory": false,
|
||||
"external": true
|
||||
},
|
||||
"returnType": "dynamic",
|
||||
"inferredReturnType": "[null|subclass=Object]",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "a",
|
||||
"type": "[exact=JSUInt31]",
|
||||
"declaredType": "dynamic"
|
||||
},
|
||||
{
|
||||
"name": "b",
|
||||
"type": "[null|exact=JSUInt31]",
|
||||
"declaredType": "dynamic"
|
||||
}
|
||||
],
|
||||
"sideEffects": "SideEffects(reads anything; writes anything)",
|
||||
"inlinedCount": 0,
|
||||
"code": "mixedPositionalArgs$1(receiver, p0) {\n return receiver.mixedPositionalArgs(p0);\n }\nmixedPositionalArgs$2(receiver, p0, p1) {\n return receiver.mixedPositionalArgs(p0, p1);\n }",
|
||||
"type": "dynamic Function(dynamic,[dynamic])"
|
||||
}]*/
|
||||
external mixedPositionalArgs(a, [dynamic? b]);
|
||||
}
|
||||
|
||||
@JS()
|
||||
class Bar {
|
||||
external static singleArg(a);
|
||||
external static singlePositionalArg([dynamic? a]);
|
||||
external static mixedPositionalArgs(a, [dynamic? b]);
|
||||
}
|
||||
|
||||
external singleArg(a);
|
||||
external singlePositionalArg([dynamic? a]);
|
||||
external mixedPositionalArgs(a, [dynamic? b]);
|
||||
|
||||
/*member: main:
|
||||
function=[{
|
||||
"id": "function/memory:sdk/tests/web/native/main.dart::main",
|
||||
"kind": "function",
|
||||
"name": "main",
|
||||
"size": 1783,
|
||||
"outputUnit": "outputUnit/main",
|
||||
"parent": "library/memory:sdk/tests/web/native/main.dart::",
|
||||
"children": [],
|
||||
"modifiers": {
|
||||
"static": false,
|
||||
"const": false,
|
||||
"factory": false,
|
||||
"external": false
|
||||
},
|
||||
"returnType": "dynamic",
|
||||
"inferredReturnType": "[null]",
|
||||
"parameters": [],
|
||||
"sideEffects": "SideEffects(reads anything; writes anything)",
|
||||
"inlinedCount": 0,
|
||||
"code": "main() {\n var foo, t1;\n self.eval(\" function Foo() {}\\n Foo.prototype.singleArg = function(a) {\\n return a;\\n }\\n Foo.prototype.singlePositionalArg = singleArg;\\n Foo.prototype.mixedPositionalArgs = function(a, b) {\\n if (arguments.length == 0) return a;\\n return arguments[arguments.length - 1];\\n }\\n var Bar = {\\n singleArg: function(a) {\\n return a;\\n },\\n singlePositionalArg: singleArg,\\n mixedPositionalArgs: function(a, b) {\\n if (arguments.length == 0) return a;\\n return arguments[arguments.length - 1];\\n },\\n };\\n function singleArg(a) {\\n return a;\\n }\\n var singlePositionalArg = singleArg;\\n function mixedPositionalArgs(a, b) {\\n if (arguments.length == 0) return a;\\n return arguments[arguments.length - 1];\\n }\\n \");\n foo = new self.Foo();\n t1 = J.getInterceptor$x(foo);\n A.Expect_equals(t1.singleArg$1(foo, 2), 2);\n A.Expect_equals(t1.singlePositionalArg$1(foo, 2), 2);\n A.Expect_equals(t1.singlePositionalArg$0(foo), null);\n A.Expect_equals(t1.mixedPositionalArgs$1(foo, 3), 3);\n A.Expect_equals(t1.mixedPositionalArgs$2(foo, 3, 4), 4);\n A.Expect_equals(self.Bar.singleArg(2), 2);\n A.Expect_equals(self.Bar.singlePositionalArg(2), 2);\n A.Expect_equals(self.Bar.singlePositionalArg(), null);\n A.Expect_equals(self.Bar.mixedPositionalArgs(3), 3);\n A.Expect_equals(self.Bar.mixedPositionalArgs(3, 4), 4);\n A.Expect_equals(self.singleArg(2), 2);\n A.Expect_equals(self.singlePositionalArg(2), 2);\n A.Expect_equals(self.singlePositionalArg(), null);\n A.Expect_equals(self.mixedPositionalArgs(3), 3);\n A.Expect_equals(self.mixedPositionalArgs(3, 4), 4);\n }",
|
||||
"type": "dynamic Function()"
|
||||
}],
|
||||
holding=[
|
||||
{"id":"function/dart:_interceptors::getNativeInterceptor","mask":null},
|
||||
{"id":"function/memory:sdk/tests/web/native/main.dart::Foo.mixedPositionalArgs","mask":"[subclass=LegacyJavaScriptObject]"},
|
||||
{"id":"function/memory:sdk/tests/web/native/main.dart::Foo.mixedPositionalArgs","mask":"[subclass=LegacyJavaScriptObject]"},
|
||||
{"id":"function/memory:sdk/tests/web/native/main.dart::Foo.singleArg","mask":"[subclass=LegacyJavaScriptObject]"},
|
||||
{"id":"function/memory:sdk/tests/web/native/main.dart::Foo.singlePositionalArg","mask":"[subclass=LegacyJavaScriptObject]"},
|
||||
{"id":"function/memory:sdk/tests/web/native/main.dart::Foo.singlePositionalArg","mask":"[subclass=LegacyJavaScriptObject]"},
|
||||
{"id":"function/package:expect/expect.dart::Expect.equals","mask":null}]
|
||||
*/
|
||||
main() {
|
||||
eval(r"""
|
||||
function Foo() {}
|
||||
Foo.prototype.singleArg = function(a) {
|
||||
return a;
|
||||
}
|
||||
Foo.prototype.singlePositionalArg = singleArg;
|
||||
Foo.prototype.mixedPositionalArgs = function(a, b) {
|
||||
if (arguments.length == 0) return a;
|
||||
return arguments[arguments.length - 1];
|
||||
}
|
||||
var Bar = {
|
||||
singleArg: function(a) {
|
||||
return a;
|
||||
},
|
||||
singlePositionalArg: singleArg,
|
||||
mixedPositionalArgs: function(a, b) {
|
||||
if (arguments.length == 0) return a;
|
||||
return arguments[arguments.length - 1];
|
||||
},
|
||||
};
|
||||
function singleArg(a) {
|
||||
return a;
|
||||
}
|
||||
var singlePositionalArg = singleArg;
|
||||
function mixedPositionalArgs(a, b) {
|
||||
if (arguments.length == 0) return a;
|
||||
return arguments[arguments.length - 1];
|
||||
}
|
||||
""");
|
||||
|
||||
var foo = Foo();
|
||||
Expect.equals(foo.singleArg(2), 2);
|
||||
Expect.equals(foo.singlePositionalArg(2), 2);
|
||||
Expect.equals(foo.singlePositionalArg(), null);
|
||||
Expect.equals(foo.mixedPositionalArgs(3), 3);
|
||||
Expect.equals(foo.mixedPositionalArgs(3, 4), 4);
|
||||
|
||||
Expect.equals(Bar.singleArg(2), 2);
|
||||
Expect.equals(Bar.singlePositionalArg(2), 2);
|
||||
Expect.equals(Bar.singlePositionalArg(), null);
|
||||
Expect.equals(Bar.mixedPositionalArgs(3), 3);
|
||||
Expect.equals(Bar.mixedPositionalArgs(3, 4), 4);
|
||||
|
||||
Expect.equals(singleArg(2), 2);
|
||||
Expect.equals(singlePositionalArg(2), 2);
|
||||
Expect.equals(singlePositionalArg(), null);
|
||||
Expect.equals(mixedPositionalArgs(3), 3);
|
||||
Expect.equals(mixedPositionalArgs(3, 4), 4);
|
||||
}
|
Loading…
Reference in a new issue