blob: 34767e1e27cf1af38a1c2c4ba4e54307ee5eec59 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@JS()
library js_interop;
import 'package:js/js.dart';
/*element: main:[null]*/
main() {
anonymousClass();
jsInteropClass();
}
@JS()
@anonymous
class Class1 {
/*element: Class1.:[null|subclass=Object]*/
external factory Class1(
{/*[exact=JSUInt31]*/ a, /*Value([exact=JSString], value: "")*/ b});
}
/*strong.element: anonymousClass:[null|subclass=JavaScriptObject]*/
anonymousClass() => new Class1(a: 1, b: '');
@JS()
class JsInteropClass {
/*element: JsInteropClass.:[null|subclass=Object]*/
external JsInteropClass();
/*element: JsInteropClass.getter:[null|subclass=Object]*/
external int get getter;
external void set setter(int /*[subclass=JSInt]*/ value);
/*element: JsInteropClass.method:[null|subclass=Object]*/
external int method(int /*[exact=JSUInt31]*/ a);
}
/*element: jsInteropClass:[subclass=JSInt]*/
jsInteropClass() {
JsInteropClass cls = new JsInteropClass();
return cls. /*update: [null|subclass=JavaScriptObject]*/ setter =
cls. /*[null|subclass=JavaScriptObject]*/ getter
/*invoke: [null|subclass=JSInt]*/ +
cls. /*invoke: [subclass=JavaScriptObject]*/ method(0)
/*invoke: [subclass=JSInt]*/ +
10;
}