Index: frog/tests/frog_native/native_class_avoids_hidden_name_frog_test.dart |
=================================================================== |
--- frog/tests/frog_native/native_class_avoids_hidden_name_frog_test.dart (revision 8644) |
+++ frog/tests/frog_native/native_class_avoids_hidden_name_frog_test.dart (working copy) |
@@ -1,54 +0,0 @@ |
-// Copyright (c) 2011, 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. |
- |
-// Test that hidden native class names are not used by generated code. |
- |
-class A native "*B" { |
- get name() => 'A'; |
- static A create() => makeA(); |
-} |
- |
-class B native "*C" { |
- get name() => 'B'; |
- static B create() => makeB(); |
-} |
- |
-class C { // Ordinary class with name clashing with native class. |
- get name() => 'C'; |
- static C create() => new C(); |
-} |
- |
-makeA() native; |
-makeB() native; |
- |
-void setup1() native """ |
-// Poison hidden native names 'B' and 'C' to prove the compiler didn't place |
-// anthing on the hidden native class. |
-B = null; |
-C = null; |
-"""; |
- |
-void setup2() native """ |
-// This code is all inside 'setup' and so not accesible from the global scope. |
-function B(){} |
-function C(){} |
-makeA = function(){return new B}; // A is "*B" |
-makeB = function(){return new C}; // B is "*C" |
-"""; |
- |
-int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1)); |
- |
-main() { |
- setup1(); |
- setup2(); |
- |
- var things = [A.create(), B.create(), C.create()]; |
- var a = things[inscrutable(0)]; |
- var b = things[inscrutable(1)]; |
- var c = things[inscrutable(2)]; |
- |
- Expect.equals('A', a.name); |
- Expect.equals('B', b.name); |
- Expect.equals('C', c.name); |
-} |