blob: 6d7337dcd69f081a11bd266e415197f03554d088 [file] [log] [blame]
// 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.
/*member: main:[null|powerset=1]*/
main() {
returnInClosure();
accessInClosure();
invokeInClosure();
operatorInClosure();
assignInClosure();
assignInTwoClosures();
accessAssignInClosure();
accessBeforeAssignInClosure();
accessAfterAssignInClosure();
compoundInClosure();
postfixInClosure();
}
/*member: returnInClosure:[exact=JSUInt31|powerset=0]*/
returnInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[exact=JSUInt31|powerset=0]*/ () {
return lines;
});
return lines;
}
/*member: accessInClosure:[exact=JSUInt31|powerset=0]*/
accessInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[exact=JSBool|powerset=0]*/ () {
return lines. /*[exact=JSUInt31|powerset=0]*/ isEven;
});
return lines;
}
/*member: invokeInClosure:[exact=JSUInt31|powerset=0]*/
invokeInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[subclass=JSNumber|powerset=0]*/ () {
return lines. /*invoke: [exact=JSUInt31|powerset=0]*/ ceilToDouble();
});
return lines;
}
/*member: operatorInClosure:[exact=JSUInt31|powerset=0]*/
operatorInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[subclass=JSInt|powerset=0]*/ () {
return lines /*invoke: [exact=JSUInt31|powerset=0]*/ - 42;
});
return lines;
}
/*member: assignInClosure:[subclass=JSInt|powerset=0]*/
assignInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines = -42;
});
return lines;
}
/*member: assignInTwoClosures:[subclass=JSInt|powerset=0]*/
assignInTwoClosures() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines = -42;
});
local(/*[null|powerset=1]*/ () {
lines = -87;
});
return lines;
}
/*member: accessAssignInClosure:[subclass=JSInt|powerset=0]*/
accessAssignInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines = lines /*invoke: [subclass=JSInt|powerset=0]*/ - 42;
});
return lines;
}
/*member: accessBeforeAssignInClosure:[exact=JSUInt31|powerset=0]*/
accessBeforeAssignInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines /*invoke: [exact=JSUInt31|powerset=0]*/ - 42;
lines = 42;
});
return lines;
}
/*member: accessAfterAssignInClosure:[exact=JSUInt31|powerset=0]*/
accessAfterAssignInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[subclass=JSInt|powerset=0]*/ () {
lines = 42;
return lines /*invoke: [exact=JSUInt31|powerset=0]*/ - 42;
});
return lines;
}
/*member: compoundInClosure:[subclass=JSInt|powerset=0]*/
compoundInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines /*invoke: [subclass=JSInt|powerset=0]*/ -= 42;
});
return lines;
}
/*member: postfixInClosure:[subclass=JSPositiveInt|powerset=0]*/
postfixInClosure() {
/*[null|subclass=Object|powerset=1]*/
local(/*[subclass=Closure|powerset=0]*/ f) => f();
int lines = 0;
local(/*[null|powerset=1]*/ () {
lines /*invoke: [subclass=JSPositiveInt|powerset=0]*/ ++;
});
return lines;
}