d3f3846207
- and use ScopeInfo.forEachBoxedVariable instead of ClosureRepresentationInfo.forEachBoxedVariable. Change-Id: I9d0c67eb06b7633a27d48745dc81d03d30f7e7ae Reviewed-on: https://dart-review.googlesource.com/18186 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Emily Fortuna <efortuna@google.com>
145 lines
3.4 KiB
Dart
145 lines
3.4 KiB
Dart
// Copyright (c) 2017, 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.
|
|
|
|
/*element: main:[null]*/
|
|
main() {
|
|
returnInClosure();
|
|
accessInClosure();
|
|
invokeInClosure();
|
|
operatorInClosure();
|
|
assignInClosure();
|
|
assignInTwoClosures();
|
|
accessAssignInClosure();
|
|
accessBeforeAssignInClosure();
|
|
accessAfterAssignInClosure();
|
|
compoundInClosure();
|
|
postfixInClosure();
|
|
}
|
|
|
|
/*element: returnInClosure:[exact=JSUInt31]*/
|
|
returnInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[exact=JSUInt31]*/ () {
|
|
return lines;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: accessInClosure:[exact=JSUInt31]*/
|
|
accessInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[exact=JSBool]*/ () {
|
|
return lines. /*[exact=JSUInt31]*/ isEven;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: invokeInClosure:[exact=JSUInt31]*/
|
|
invokeInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[subclass=JSNumber]*/ () {
|
|
return lines. /*invoke: [exact=JSUInt31]*/ ceilToDouble();
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: operatorInClosure:[exact=JSUInt31]*/
|
|
operatorInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[subclass=JSInt]*/ () {
|
|
return lines /*invoke: [exact=JSUInt31]*/ - 42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: assignInClosure:[subclass=JSInt]*/
|
|
assignInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines = /*invoke: [exact=JSUInt31]*/ -42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: assignInTwoClosures:[subclass=JSInt]*/
|
|
assignInTwoClosures() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines = /*invoke: [exact=JSUInt31]*/ -42;
|
|
});
|
|
local(/*[null]*/ () {
|
|
lines = /*invoke: [exact=JSUInt31]*/ -87;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: accessAssignInClosure:[subclass=JSInt]*/
|
|
accessAssignInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines = lines /*invoke: [subclass=JSInt]*/ - 42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: accessBeforeAssignInClosure:[exact=JSUInt31]*/
|
|
accessBeforeAssignInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines /*invoke: [exact=JSUInt31]*/ - 42;
|
|
lines = 42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: accessAfterAssignInClosure:[exact=JSUInt31]*/
|
|
accessAfterAssignInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[subclass=JSInt]*/ () {
|
|
lines = 42;
|
|
return lines /*invoke: [exact=JSUInt31]*/ - 42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: compoundInClosure:[subclass=JSInt]*/
|
|
compoundInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines /*invoke: [subclass=JSInt]*/ -= 42;
|
|
});
|
|
return lines;
|
|
}
|
|
|
|
/*element: postfixInClosure:[subclass=JSPositiveInt]*/
|
|
postfixInClosure() {
|
|
/*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f();
|
|
|
|
int lines = 0;
|
|
local(/*[null]*/ () {
|
|
lines /*invoke: [subclass=JSPositiveInt]*/ ++;
|
|
});
|
|
return lines;
|
|
}
|