OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 class A native "*A" { | |
6 } | |
7 | |
8 class B extends A native "*B" { | |
9 foo() native; | |
10 } | |
11 | |
12 makeA() native; | |
13 makeB() native; | |
14 | |
15 setup() native """ | |
16 function inherits(child, parent) { | |
17 if (child.prototype.__proto__) { | |
18 child.prototype.__proto__ = parent.prototype; | |
19 } else { | |
20 function tmp() {}; | |
21 tmp.prototype = parent.prototype; | |
22 child.prototype = new tmp(); | |
23 child.prototype.constructor = child; | |
24 } | |
25 } | |
26 function A() {} | |
27 function B() {} | |
28 inherits(B, A); | |
29 makeA = function() { return new A; } | |
30 makeB = function() { return new B; } | |
31 B.prototype.foo = function() { return 42; } | |
32 """; | |
33 | |
34 main() { | |
35 setup(); | |
36 var a = makeA(); | |
37 var exception; | |
38 try { | |
39 a.foo(); | |
40 } catch (NoSuchMethodException e) { | |
41 exception = e; | |
42 } | |
43 Expect.isNotNull(exception); | |
44 | |
45 var b = makeB(); | |
46 Expect.equals(42, b.foo()); | |
47 } | |
OLD | NEW |