[dart2wasm] Add more test coverage for int in static interop APIs.

Change-Id: I6f77eeefb14e557be65c09a56ed814ab1702fac2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278804
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
This commit is contained in:
Joshua Litt 2023-01-19 04:46:47 +00:00 committed by Commit Queue
parent 329cb2088a
commit abae306239

View file

@ -32,6 +32,10 @@ extension StaticJSClassMethods on StaticJSClass {
external String doSumUpTo2([String? a, String? b]);
external String doSum1Or2NonNull(String a, [String b = 'bar']);
external String doSumUpTo2NonNull([String a = 'foo', String b = 'bar']);
external int doIntSum1Or2(int a, [int? b]);
external int doIntSumUpTo2([int? a, int? b]);
external int doIntSum1Or2NonNull(int a, [int b = 2]);
external int doIntSumUpTo2NonNull([int a = 1, int b = 2]);
@JS('nameInJSMethod')
external String nameInDartMethod(String a, String b);
@ -78,6 +82,18 @@ void createClassTest() {
this.doSumUpTo2NonNull = function(a, b) {
return a + b;
}
this.doIntSum1Or2 = function(a, b) {
return a + (b ?? 2);
}
this.doIntSumUpTo2 = function(a, b) {
return (a ?? 1) + (b ?? 2);
}
this.doIntSum1Or2NonNull = function(a, b) {
return a + b;
}
this.doIntSumUpTo2NonNull = function(a, b) {
return a + b;
}
this.nameInJSMethod = function(a, b) {
return a + b;
}
@ -128,6 +144,18 @@ void createClassTest() {
Expect.equals('foobar', foo.doSumUpTo2NonNull('foo'));
Expect.equals('foobar', foo.doSumUpTo2NonNull('foo', 'bar'));
Expect.equals(3, foo.doIntSum1Or2(1));
Expect.equals(3, foo.doIntSum1Or2(1, 2));
Expect.equals(3, foo.doIntSumUpTo2());
Expect.equals(3, foo.doIntSumUpTo2(1));
Expect.equals(3, foo.doIntSumUpTo2(1, 2));
Expect.equals(3, foo.doIntSum1Or2NonNull(1));
Expect.equals(3, foo.doIntSum1Or2NonNull(1, 2));
Expect.equals(3, foo.doIntSumUpTo2NonNull());
Expect.equals(3, foo.doIntSumUpTo2NonNull(1));
Expect.equals(3, foo.doIntSumUpTo2NonNull(1, 2));
Expect.equals('foobar', foo.nameInDartMethod('foo', 'bar'));
Expect.equals('foo', foo.nameInDartGetter);
foo.nameInDartSetter = 'boo';
@ -267,13 +295,23 @@ void topLevelMethodsTest() {
@staticInterop
class AnonymousJSClass {
external factory AnonymousJSClass.factory(
{String? foo, String bar = 'baz', String? bleep});
{String? foo,
String bar = 'baz',
String? bleep,
int? goo,
int ooo = 1,
List<double>? saz,
List<double> zoo = const [1.0, 2.0]});
}
extension AnonymousJSClassExtension on AnonymousJSClass {
external String? get foo;
external String get bar;
external String? get bleep;
external int? get goo;
external int get ooo;
external List<double>? saz;
external List<double> zoo;
}
void anonymousTest() {
@ -281,6 +319,10 @@ void anonymousTest() {
Expect.equals('boo', anonymousJSClass.foo);
Expect.equals('baz', anonymousJSClass.bar);
Expect.equals(null, anonymousJSClass.bleep);
Expect.equals(null, anonymousJSClass.goo);
Expect.equals(1, anonymousJSClass.ooo);
Expect.equals(null, anonymousJSClass.saz);
Expect.listEquals(const [1.0, 2.0], anonymousJSClass.zoo);
}
@JS()