| // Copyright (c) 2012, 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. |
| |
| // @dart = 2.7 |
| |
| import "native_testing.dart"; |
| |
| abstract class Window { |
| int get document native; |
| } |
| |
| // Defining this global object makes Frog eager on optimizing |
| // call sites where the receiver is typed 'Window'. |
| @Native("@*DOMWindow") |
| class _DOMWindowJs implements Window { |
| int get document native; |
| } |
| |
| class Win implements Window { |
| noSuchMethod(m) => super.noSuchMethod(m); |
| } |
| |
| main() { |
| nativeTesting(); |
| // By typing this variable to 'Window', Frog will optimize calls on |
| // it. |
| Window win = new Win(); |
| Expect.throws(() => win.document, (e) => e is NoSuchMethodError); |
| } |