// 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. // @dart = 2.7 /*member: main:[null]*/ main() { returnInClosure(); accessInClosure(); invokeInClosure(); operatorInClosure(); assignInClosure(); assignInTwoClosures(); accessAssignInClosure(); accessBeforeAssignInClosure(); accessAfterAssignInClosure(); compoundInClosure(); postfixInClosure(); } /*member: returnInClosure:[exact=JSUInt31]*/ returnInClosure() { /*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f(); int lines = 0; local(/*[exact=JSUInt31]*/ () { return lines; }); return lines; } /*member: 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; } /*member: 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; } /*member: 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; } /*member: assignInClosure:[subclass=JSInt]*/ assignInClosure() { /*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f(); int lines = 0; local(/*[null]*/ () { lines = -42; }); return lines; } /*member: assignInTwoClosures:[subclass=JSInt]*/ assignInTwoClosures() { /*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f(); int lines = 0; local(/*[null]*/ () { lines = -42; }); local(/*[null]*/ () { lines = -87; }); return lines; } /*member: 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; } /*member: 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; } /*member: 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; } /*member: compoundInClosure:[subclass=JSInt]*/ compoundInClosure() { /*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f(); int lines = 0; local(/*[null]*/ () { lines /*invoke: [subclass=JSInt]*/ -= 42; }); return lines; } /*member: postfixInClosure:[subclass=JSPositiveInt]*/ postfixInClosure() { /*[null|subclass=Object]*/ local(/*[subclass=Closure]*/ f) => f(); int lines = 0; local(/*[null]*/ () { lines /*invoke: [subclass=JSPositiveInt]*/ ++; }); return lines; }