| Index: test/codegen/lib/html/window_nosuchmethod_test.dart
|
| diff --git a/test/codegen/lib/html/window_nosuchmethod_test.dart b/test/codegen/lib/html/window_nosuchmethod_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..93cb592e0746d0523b467521d48fee0a2d26a654
|
| --- /dev/null
|
| +++ b/test/codegen/lib/html/window_nosuchmethod_test.dart
|
| @@ -0,0 +1,55 @@
|
| +// 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.
|
| +
|
| +library WindowNSMETest;
|
| +import "package:expect/expect.dart";
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +import 'dart:html' as dom;
|
| +
|
| +// Not defined in dom.Window.
|
| +foo(x) => x;
|
| +
|
| +class Unused {
|
| + foo(x) => 'not $x';
|
| +}
|
| +
|
| +int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1));
|
| +
|
| +main() {
|
| + useHtmlConfiguration();
|
| + var things = [new Unused(), dom.window];
|
| +
|
| + test('windowNonMethod', () {
|
| + var win = things[inscrutable(1)];
|
| + final message = foo("Hello World");
|
| + try {
|
| + String x = win.foo(message);
|
| + expect(false, isTrue, reason: 'Should not reach here: $x');
|
| + } on NoSuchMethodError catch (e) {
|
| + // Expected exception.
|
| + } on Exception catch (e) {
|
| + expect(false, isTrue, reason: 'Wrong exception: $e');
|
| + }
|
| + });
|
| +
|
| + test('foo', () {
|
| + var win = things[inscrutable(0)];
|
| + String x = win.foo('bar');
|
| + expect(x, 'not bar');
|
| + });
|
| +
|
| + // Use dom.window direclty in case the compiler does type inference.
|
| + test('windowNonMethod2', () {
|
| + final message = foo("Hello World");
|
| + try {
|
| + String x = dom.window.foo(message);
|
| + expect(false, isTrue, reason: 'Should not reach here: $x');
|
| + } on NoSuchMethodError catch (e) {
|
| + // Expected exception.
|
| + } on Exception catch (e) {
|
| + expect(false, isTrue, reason: 'Wrong exception: $e');
|
| + }
|
| + });
|
| +}
|
|
|