lgcl-or-whitespace.js (1668B)
1 // Copyright (C) 2020 Rick Waldron. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: | 6 White Space and Line Terminator between LeftHandSideExpression and "@=" 7 or between "@=" and AssignmentExpression are allowed 8 esid: sec-assignment-operators 9 description: Checking by evaluating expression "x[...]||=[...]y" 10 features: [logical-assignment-operators] 11 ---*/ 12 var x; 13 14 x = 0; 15 assert.sameValue(x ||= 1, 1, 'U+0009 (expression)'); 16 assert.sameValue(x, 1, 'U+0009 (side effect)'); 17 18 x = 0; 19 assert.sameValue(x||=1, 1, 'U+000B (expression)'); 20 assert.sameValue(x, 1, 'U+000B (side effect)'); 21 22 x = 0; 23 assert.sameValue(x||=1, 1, 'U+000C (expression)'); 24 assert.sameValue(x, 1, 'U+000C (side effect)'); 25 26 x = 0; 27 assert.sameValue(x ||= 1, 1, 'U+0020 (expression)'); 28 assert.sameValue(x, 1, 'U+0020 (side effect)'); 29 30 x = 0; 31 assert.sameValue(x ||= 1, 1, 'U+00A0 (expression)'); 32 assert.sameValue(x, 1, 'U+00A0 (side effect)'); 33 34 x = 0; 35 assert.sameValue(x 36 ||= 37 1, 1, 'U+000A (expression)'); 38 assert.sameValue(x, 1, 'U+000A (side effect)'); 39 40 x = 0; 41 assert.sameValue(x 42 ||= 43 1, 1, 'U+000D (expression)'); 44 assert.sameValue(x, 1, 'U+000D (side effect)'); 45 46 x = 0; 47 assert.sameValue(x ||= 1, 1, 'U+2028 (expression)'); 48 assert.sameValue(x, 1, 'U+2028 (side effect)'); 49 50 x = 0; 51 assert.sameValue(x ||= 1, 1, 'U+2029 (expression)'); 52 assert.sameValue(x, 1, 'U+2029 (side effect)'); 53 54 x = 0; 55 assert.sameValue(x 56 ||= 57 1, 1, 'U+0009U+000BU+000CU+0020U+00A0U+000AU+000DU+2028U+2029 (expression)'); 58 assert.sameValue(x, 1, 'U+0009U+000BU+000CU+0020U+00A0U+000AU+000DU+2028U+2029 (side effect)'); 59 60 reportCompare(0, 0);