| // 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() { | |
| unconditionalThrow(); | |
| conditionalThrow(); | |
| conditionalThrowReturn(); | |
| unconditionalRethrow(); | |
| } | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /// Method that throws unconditionally. | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /*member: unconditionalThrow:[empty|powerset=empty]*/ | |
| unconditionalThrow() => throw 'foo'; | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /// Method that throws conditionally. | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /*member: _conditionalThrow:[null|powerset={null}]*/ | |
| _conditionalThrow(/*[exact=JSBool|powerset={I}{O}{N}]*/ o) { | |
| if (o) throw 'foo'; | |
| } | |
| /*member: conditionalThrow:[null|powerset={null}]*/ | |
| conditionalThrow() { | |
| _conditionalThrow(true); | |
| _conditionalThrow(false); | |
| } | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /// Method that throws conditionally and return 0. | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /*member: _conditionalThrowReturn:[exact=JSUInt31|powerset={I}{O}{N}]*/ | |
| _conditionalThrowReturn(/*[exact=JSBool|powerset={I}{O}{N}]*/ o) { | |
| if (o) throw 'foo'; | |
| return 0; | |
| } | |
| /*member: conditionalThrowReturn:[null|powerset={null}]*/ | |
| conditionalThrowReturn() { | |
| _conditionalThrowReturn(true); | |
| _conditionalThrowReturn(false); | |
| } | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /// Method that rethrows unconditionally. | |
| //////////////////////////////////////////////////////////////////////////////// | |
| /*member: unconditionalRethrow:[empty|powerset=empty]*/ | |
| unconditionalRethrow() { | |
| try { | |
| throw 'foo'; | |
| } catch (e) { | |
| rethrow; | |
| } | |
| } |