|  | // Copyright (c) 2014, 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. | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | var global = 0; | 
|  |  | 
|  | class Foo { | 
|  | var field = 0; | 
|  | static var staticField = 0; | 
|  | } | 
|  |  | 
|  | field_compound1(obj) { | 
|  | return obj.field = obj.field + 5; | 
|  | } | 
|  |  | 
|  | field_compound2(obj) { | 
|  | return obj.field = obj.field + 1; | 
|  | } | 
|  |  | 
|  | field_compound3(obj) { | 
|  | return obj.field = obj.field - 1; | 
|  | } | 
|  |  | 
|  | field_compound4(obj) { | 
|  | return obj.field = obj.field * 1; | 
|  | } | 
|  |  | 
|  | static_compound1() { | 
|  | return Foo.staticField = Foo.staticField + 5; | 
|  | } | 
|  |  | 
|  | static_compound2() { | 
|  | return Foo.staticField = Foo.staticField + 1; | 
|  | } | 
|  |  | 
|  | static_compound3() { | 
|  | return Foo.staticField = Foo.staticField - 1; | 
|  | } | 
|  |  | 
|  | static_compound4() { | 
|  | return Foo.staticField = Foo.staticField * 1; | 
|  | } | 
|  |  | 
|  | global_compound1() { | 
|  | return global = global + 5; | 
|  | } | 
|  |  | 
|  | global_compound2() { | 
|  | return global = global + 1; | 
|  | } | 
|  |  | 
|  | global_compound3() { | 
|  | return global = global - 1; | 
|  | } | 
|  |  | 
|  | global_compound4() { | 
|  | return global = global * 1; | 
|  | } | 
|  |  | 
|  | local_compound1(x) { | 
|  | x = x + 5; | 
|  | if (x > 0) { | 
|  | return x; | 
|  | } | 
|  | return -x; | 
|  | } | 
|  |  | 
|  | local_compound2(x) { | 
|  | x = x + 1; | 
|  | if (x > 0) { | 
|  | return x; | 
|  | } | 
|  | return -x; | 
|  | } | 
|  |  | 
|  | local_compound3(x) { | 
|  | x = x - 1; | 
|  | if (x > 0) { | 
|  | return x; | 
|  | } | 
|  | return -x; | 
|  | } | 
|  |  | 
|  | local_compound4(x) { | 
|  | x = x * 1; | 
|  | if (x > 0) { | 
|  | return x; | 
|  | } | 
|  | return -x; | 
|  | } | 
|  |  | 
|  | main() { | 
|  | var obj = new Foo(); | 
|  | Expect.equals(5, field_compound1(obj)); | 
|  | Expect.equals(5, obj.field); | 
|  | Expect.equals(6, field_compound2(obj)); | 
|  | Expect.equals(6, obj.field); | 
|  | Expect.equals(5, field_compound3(obj)); | 
|  | Expect.equals(5, obj.field); | 
|  | Expect.equals(5, field_compound4(obj)); | 
|  | Expect.equals(5, obj.field); | 
|  |  | 
|  | Expect.equals(5, static_compound1()); | 
|  | Expect.equals(5, Foo.staticField); | 
|  | Expect.equals(6, static_compound2()); | 
|  | Expect.equals(6, Foo.staticField); | 
|  | Expect.equals(5, static_compound3()); | 
|  | Expect.equals(5, Foo.staticField); | 
|  | Expect.equals(5, static_compound4()); | 
|  | Expect.equals(5, Foo.staticField); | 
|  |  | 
|  | Expect.equals(5, global_compound1()); | 
|  | Expect.equals(5, global); | 
|  | Expect.equals(6, global_compound2()); | 
|  | Expect.equals(6, global); | 
|  | Expect.equals(5, global_compound3()); | 
|  | Expect.equals(5, global); | 
|  | Expect.equals(5, global_compound4()); | 
|  | Expect.equals(5, global); | 
|  |  | 
|  | Expect.equals(8, local_compound1(3)); | 
|  | Expect.equals(3, local_compound1(-8)); | 
|  | Expect.equals(4, local_compound2(3)); | 
|  | Expect.equals(7, local_compound2(-8)); | 
|  | Expect.equals(2, local_compound3(3)); | 
|  | Expect.equals(9, local_compound3(-8)); | 
|  | Expect.equals(3, local_compound4(3)); | 
|  | Expect.equals(8, local_compound4(-8)); | 
|  | } |