[package:js] Test optional default value arguments in extensions
Change-Id: Ia28d53bfca87dab143701ce0099a16580fdc14b3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221560 Reviewed-by: Srujan Gaddam <srujzs@google.com> Commit-Queue: Riley Porter <rileyporter@google.com>
This commit is contained in:
@@ -35,6 +35,7 @@ extension FooExt on Foo {
|
||||
external set annotatedSetter(_);
|
||||
|
||||
external num getField();
|
||||
external void setField10([optionalArgument = 10]);
|
||||
@JS('toString')
|
||||
external String extToString();
|
||||
external dynamic getFirstEl(list);
|
||||
@@ -72,6 +73,10 @@ void main() {
|
||||
return this.field;
|
||||
}
|
||||
|
||||
Foo.prototype.setField10 = function(optionalArgument) {
|
||||
this.field = optionalArgument;
|
||||
}
|
||||
|
||||
Foo.prototype.getFirstEl = function(list) {
|
||||
return list[0];
|
||||
}
|
||||
@@ -128,6 +133,24 @@ void main() {
|
||||
expect(foo.otherSumFn(10, 5), equals(15));
|
||||
});
|
||||
|
||||
// TODO(41375): Remove if JS interop default value arguments are disallowed.
|
||||
test('optional arguments', () {
|
||||
var foo = Foo(42);
|
||||
expect(foo.field, equals(42));
|
||||
|
||||
foo.setField10();
|
||||
expect(foo.field, equals(10));
|
||||
foo.setField10(6);
|
||||
expect(foo.field, equals(6));
|
||||
|
||||
// Test using tearoffs
|
||||
var setF = foo.setField10;
|
||||
setF();
|
||||
expect(foo.field, equals(10));
|
||||
setF(6);
|
||||
expect(foo.field, equals(6));
|
||||
});
|
||||
|
||||
test('module class', () {
|
||||
var bar = Bar(5);
|
||||
expect(js_util.getProperty(bar, 'fieldAnnotation'), equals(5));
|
||||
|
||||
@@ -32,6 +32,7 @@ extension FooExt on Foo {
|
||||
external set annotatedSetter(_);
|
||||
|
||||
external num getField();
|
||||
external void setField10([optionalArgument = 10]);
|
||||
@JS('toString')
|
||||
external String extToString();
|
||||
external dynamic getFirstEl(list);
|
||||
@@ -71,6 +72,10 @@ void main() {
|
||||
return this.field;
|
||||
}
|
||||
|
||||
Foo.prototype.setField10 = function(optionalArgument) {
|
||||
this.field = optionalArgument;
|
||||
}
|
||||
|
||||
Foo.prototype.getFirstEl = function(list) {
|
||||
return list[0];
|
||||
}
|
||||
@@ -110,6 +115,24 @@ void main() {
|
||||
expect(foo.otherSumFn(10, 5), equals(15));
|
||||
});
|
||||
|
||||
// TODO(41375): Remove if JS interop default value arguments are disallowed.
|
||||
test('optional arguments', () {
|
||||
var foo = Foo(42);
|
||||
expect(foo.getField(), equals(42));
|
||||
|
||||
foo.setField10();
|
||||
expect(foo.getField(), equals(10));
|
||||
foo.setField10(6);
|
||||
expect(foo.getField(), equals(6));
|
||||
|
||||
// Test using tearoffs
|
||||
var setF = foo.setField10;
|
||||
setF();
|
||||
expect(foo.getField(), equals(10));
|
||||
setF(6);
|
||||
expect(foo.getField(), equals(6));
|
||||
});
|
||||
|
||||
test('module class', () {
|
||||
var bar = Bar(5);
|
||||
expect(js_util.getProperty(bar, 'fieldAnnotation'), equals(5));
|
||||
|
||||
Reference in New Issue
Block a user