and-whitespace.js (1642B)
1 // Copyright 2009 the Sputnik authors. 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 es5id: 11.13.2_A1_T9 9 esid: sec-assignment-operators 10 description: Checking by using eval, check operator is x &= y 11 ---*/ 12 13 var x; 14 15 x = 1; 16 assert.sameValue(x &= 1, 1, 'U+0009 (expression)'); 17 assert.sameValue(x, 1, 'U+0009 (side effect)'); 18 19 x = 1; 20 assert.sameValue(x&=1, 1, 'U+000B (expression)'); 21 assert.sameValue(x, 1, 'U+000B (side effect)'); 22 23 x = 1; 24 assert.sameValue(x&=1, 1, 'U+000C (expression)'); 25 assert.sameValue(x, 1, 'U+000C (side effect)'); 26 27 x = 1; 28 assert.sameValue(x &= 1, 1, 'U+0020 (expression)'); 29 assert.sameValue(x, 1, 'U+0020 (side effect)'); 30 31 x = 1; 32 assert.sameValue(x &= 1, 1, 'U+00A0 (expression)'); 33 assert.sameValue(x, 1, 'U+00A0 (side effect)'); 34 35 x = 1; 36 assert.sameValue(x 37 &= 38 1, 1, 'U+000A (expression)'); 39 assert.sameValue(x, 1, 'U+000A (side effect)'); 40 41 x = 1; 42 assert.sameValue(x&=1, 1, 'U+000D (expression)'); 43 assert.sameValue(x, 1, 'U+000D (side effect)'); 44 45 x = 1; 46 assert.sameValue(x &= 1, 1, 'U+2028 (expression)'); 47 assert.sameValue(x, 1, 'U+2028 (side effect)'); 48 49 x = 1; 50 assert.sameValue(x &= 1, 1, 'U+2029 (expression)'); 51 assert.sameValue(x, 1, 'U+2029 (side effect)'); 52 53 x = 1; 54 assert.sameValue(x 55 &= 56 1, 1, 'U+0009U+000BU+000CU+0020U+00A0U+000AU+000DU+2028U+2029 (expression)'); 57 assert.sameValue(x, 1, 'U+0009U+000BU+000CU+0020U+00A0U+000AU+000DU+2028U+2029 (side effect)'); 58 59 reportCompare(0, 0);