Files
sdk/pkg/kernel/testcases/interpreter/static_accessors.dart
T
Zhivka Gucevska e89bbf96a5 Implement support for static accessors
- Evaluation of StaticPropertyGet expression by reading a value stored in
the main environment, execution of static getter or creating a method tear off.
- Evaluation of StaticPropertySet expression by modifying the value
stored in main environment or execution of static setter.

BUG=
R=dmitryas@google.com, kmillikin@google.com

Review-Url: https://codereview.chromium.org/2997563002 .
2017-08-21 08:24:18 +02:00

42 lines
1.1 KiB
Dart

// Copyright (c) 2016, 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.md file.
main(arguments) {
test1(f1);
test2(f2);
if (37 != v1) throw "Unexpected value: v1 = $v1, expected value: 37";
v1 = 42;
if (42 != v1) throw "Unexpected value: v1 = $v1, expected value: 42";
if (v2 != null) throw "Unexpected value: v2 = $v2, expected value: null";
v2 = 42;
if (42 != v2) throw "Unexpected value: v2 = $v2, expected value: 42";
setter = 37;
if (37 != v1) throw "Unexpected value: v1 = $v1, expected value: 37";
if (37 != getter)
throw "Unexpected getter value: v1 = ${getter}, expected value: 37";
}
f1(a, [b = 10]) => a + b;
f2(a, {b = 10}) => a + b;
var v1 = 37;
var v2;
int get getter => v1;
void set setter(int v) {
v1 = v;
}
test1(Function f) {
var result = f(40, 2);
if (42 != result) throw "Unexpected result: $result";
}
test2(Function f) {
var result = f(40, b: 2);
if (42 != result) throw "Unexpected result: $result";
}