553ac951b3
Change-Id: I5d4c0b4d15a05cfc30d87003785ca841c46b1a0f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/426583 Reviewed-by: Stephen Adams <sra@google.com>
185 lines
5.0 KiB
Dart
185 lines
5.0 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.
|
|
|
|
/*member: main:[null|powerset={null}]*/
|
|
main() {
|
|
breakInWhile();
|
|
noBreakInWhile();
|
|
continueInWhile();
|
|
noContinueInWhile();
|
|
breakInIf();
|
|
noBreakInIf();
|
|
breakInBlock();
|
|
noBreakInBlock();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// A break statement in a while loop.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _breakInWhile:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/
|
|
_breakInWhile(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
while (b) {
|
|
if (b) {
|
|
local = '';
|
|
break;
|
|
}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: breakInWhile:[null|powerset={null}]*/
|
|
breakInWhile() {
|
|
_breakInWhile(true);
|
|
_breakInWhile(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// The while loop above _without_ the break statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _noBreakInWhile:[exact=JSUInt31|powerset={I}{O}{N}]*/
|
|
_noBreakInWhile(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
while (b) {
|
|
if (b) {
|
|
local = '';
|
|
}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: noBreakInWhile:[null|powerset={null}]*/
|
|
noBreakInWhile() {
|
|
_noBreakInWhile(true);
|
|
_noBreakInWhile(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// A continue statement in a while loop.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _continueInWhile:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/
|
|
_continueInWhile(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
while (b) {
|
|
local /*invoke: Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ +
|
|
null;
|
|
if (b) {
|
|
local = '';
|
|
continue;
|
|
}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: continueInWhile:[null|powerset={null}]*/
|
|
continueInWhile() {
|
|
_continueInWhile(true);
|
|
_continueInWhile(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// The while loop above _without_ the continue statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _noContinueInWhile:[exact=JSUInt31|powerset={I}{O}{N}]*/
|
|
_noContinueInWhile(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
while (b) {
|
|
local /*invoke: [exact=JSUInt31|powerset={I}{O}{N}]*/ + null;
|
|
if (b) {
|
|
local = '';
|
|
}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: noContinueInWhile:[null|powerset={null}]*/
|
|
noContinueInWhile() {
|
|
_noContinueInWhile(true);
|
|
_noContinueInWhile(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// A conditional break statement in a labeled statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _breakInIf:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/
|
|
_breakInIf(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
label:
|
|
{
|
|
local = '';
|
|
if (b) {
|
|
break label;
|
|
}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: breakInIf:[null|powerset={null}]*/
|
|
breakInIf() {
|
|
_breakInIf(true);
|
|
_breakInIf(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// The "labeled statement" above _without_ the break statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _noBreakInIf:[exact=JSUInt31|powerset={I}{O}{N}]*/
|
|
_noBreakInIf(/*[exact=JSBool|powerset={I}{O}{N}]*/ b) {
|
|
dynamic local = 42;
|
|
{
|
|
local = '';
|
|
if (b) {}
|
|
local = 0;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
/*member: noBreakInIf:[null|powerset={null}]*/
|
|
noBreakInIf() {
|
|
_noBreakInIf(true);
|
|
_noBreakInIf(false);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// An unconditional break statement in a labeled statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: breakInBlock:Value([exact=JSString|powerset={I}{O}{I}], value: "", powerset: {I}{O}{I})*/
|
|
breakInBlock() {
|
|
dynamic local = 42;
|
|
label:
|
|
{
|
|
local = '';
|
|
break label;
|
|
local = false;
|
|
}
|
|
return local;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// The "labeled statement" above _without_ the break statement.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: noBreakInBlock:Value([exact=JSBool|powerset={I}{O}{N}], value: false, powerset: {I}{O}{N})*/
|
|
noBreakInBlock() {
|
|
dynamic local = 42;
|
|
label:
|
|
{
|
|
local = '';
|
|
local = false;
|
|
}
|
|
return local;
|
|
}
|