| 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 closure0() { | |
| 6 // f and g will both capture a variable named 'x'. If we use the original | |
| 7 // name in the (shared) box then there will be troubles. | |
| 8 var f; | |
| 9 var g; | |
| 10 { | |
| 11 var x = 499; | |
| 12 // TODO(floitsch): remove name from functions. | |
| 13 f = fun() { return x; }; | |
| 14 x++; | |
| 15 } | |
| 16 { | |
| 17 var x = 42; | |
| 18 // TODO(floitsch): remove name from functions. | |
| 19 g = fun() { return x; }; | |
| 20 x++; | |
| 21 } | |
| 22 Expect.equals(500, f()); | |
| 23 Expect.equals(43, g()); | |
| 24 } | |
| 25 | |
| 26 closure1() { | |
| 27 // f captures variable $0 which could yield to troubles with HForeign if we | |
| 28 // don't mangle correctly. | |
| 29 var $1 = 499; | |
| 30 // TODO(floitsch): remove name from functions. | |
| 31 var f = fun() { return $1; }; | |
| 32 $1++; | |
| 33 Expect.equals(500, f()); | |
| 34 } | |
| 35 | |
| 36 main() { | |
| 37 closure0(); | |
| 38 closure1(); | |
| 39 } | |
| OLD | NEW |