|  | // 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() { | 
|  | ifNull(); | 
|  | ifNotNullInvoke(); | 
|  | notIfNotNullInvoke(); | 
|  | } | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | // If-null on parameter. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _ifNull:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _ifNull(/*[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ o) => o ?? 0; | 
|  |  | 
|  | /*member: ifNull:[null|powerset={null}]*/ | 
|  | ifNull() { | 
|  | _ifNull(null); | 
|  | _ifNull(0); | 
|  | } | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | // If-not-null access on parameter. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _ifNotNullInvoke:[null|exact=JSBool|powerset={null}{I}{O}{N}]*/ | 
|  | _ifNotNullInvoke(/*[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ o) { | 
|  | return o | 
|  | ?. | 
|  | /*[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | isEven; | 
|  | } | 
|  |  | 
|  | /*member: ifNotNullInvoke:[null|powerset={null}]*/ | 
|  | ifNotNullInvoke() { | 
|  | _ifNotNullInvoke(null); | 
|  | _ifNotNullInvoke(0); | 
|  | } | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | // As above but unconditional access. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _notIfNotNullInvoke:[exact=JSBool|powerset={I}{O}{N}]*/ | 
|  | _notIfNotNullInvoke(/*[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ o) { | 
|  | return o. /*[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ isEven; | 
|  | } | 
|  |  | 
|  | /*member: notIfNotNullInvoke:[null|powerset={null}]*/ | 
|  | notIfNotNullInvoke() { | 
|  | _notIfNotNullInvoke(null); | 
|  | _notIfNotNullInvoke(0); | 
|  | } |