Ben Murdoch | b8a8cc1 | 2014-11-26 15:28:44 +0000 | [diff] [blame] | 1 | // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 | // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 3 | // |
| 4 | // Redistribution and use in source and binary forms, with or without |
| 5 | // modification, are permitted provided that the following conditions |
| 6 | // are met: |
| 7 | // 1. Redistributions of source code must retain the above copyright |
| 8 | // notice, this list of conditions and the following disclaimer. |
| 9 | // 2. Redistributions in binary form must reproduce the above copyright |
| 10 | // notice, this list of conditions and the following disclaimer in the |
| 11 | // documentation and/or other materials provided with the distribution. |
| 12 | // |
| 13 | // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY |
| 14 | // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 15 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 16 | // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| 17 | // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 18 | // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 19 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| 20 | // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 21 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 22 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 23 | |
| 24 | description( |
| 25 | "This test checks some cases that might be affected by constant folding." |
| 26 | ); |
| 27 | |
| 28 | shouldBe('"abc" + "2.1"', '"abc2.1"'); |
| 29 | shouldBe('"123" + "2.1"', '"1232.1"'); |
| 30 | shouldBe('"123" + "="', '"123="'); |
| 31 | shouldBe('"*" + "123"', '"*123"'); |
| 32 | |
| 33 | shouldBe('!"abc"', 'false'); |
| 34 | shouldBe('!""', 'true'); |
| 35 | |
| 36 | shouldBe('10.3 + 2.1', '12.4'); |
| 37 | shouldBe('10.3 + "2.1"', '"10.32.1"'); |
| 38 | shouldBe('"10.3" + 2.1 ', '"10.32.1"'); |
| 39 | shouldBe('"10.3" + "2.1"', '"10.32.1"'); |
| 40 | shouldBe('10.3 + true', '11.3'); |
| 41 | shouldBe('"10.3" + true', '"10.3true"'); |
| 42 | shouldBe('10.3 + false', '10.3'); |
| 43 | shouldBe('"10.3" + false', '"10.3false"'); |
| 44 | shouldBe('true + 2.1', '3.1'); |
| 45 | shouldBe('true + "2.1"', '"true2.1"'); |
| 46 | shouldBe('false + 2.1', '2.1'); |
| 47 | shouldBe('false + "2.1"', '"false2.1"'); |
| 48 | |
| 49 | shouldBe('10.3 - 2.1', '8.200000000000001'); |
| 50 | shouldBe('10.3 - "2.1"', '8.200000000000001'); |
| 51 | shouldBe('"10.3" - 2.1 ', '8.200000000000001'); |
| 52 | shouldBe('"10.3" - "2.1"', '8.200000000000001'); |
| 53 | shouldBe('10.3 - true', '9.3'); |
| 54 | shouldBe('"10.3" - true', '9.3'); |
| 55 | shouldBe('10.3 - false', '10.3'); |
| 56 | shouldBe('"10.3" - false', '10.3'); |
| 57 | shouldBe('true - 2.1', '-1.1'); |
| 58 | shouldBe('true - "2.1"', '-1.1'); |
| 59 | shouldBe('false - 2.1', '-2.1'); |
| 60 | shouldBe('false - "2.1"', '-2.1'); |
| 61 | |
| 62 | shouldBe('10.3 * 2.1', '21.630000000000003'); |
| 63 | shouldBe('10.3 * "2.1"', '21.630000000000003'); |
| 64 | shouldBe('"10.3" * 2.1', '21.630000000000003'); |
| 65 | shouldBe('"10.3" * "2.1"', '21.630000000000003'); |
| 66 | shouldBe('10.3 * true', '10.3'); |
| 67 | shouldBe('"10.3" * true', '10.3'); |
| 68 | shouldBe('10.3 * false', '0'); |
| 69 | shouldBe('"10.3" * false', '0'); |
| 70 | shouldBe('true * 10.3', '10.3'); |
| 71 | shouldBe('true * "10.3"', '10.3'); |
| 72 | shouldBe('false * 10.3', '0'); |
| 73 | shouldBe('false * "10.3"', '0'); |
| 74 | |
| 75 | shouldBe('10.3 / 2', '5.15'); |
| 76 | shouldBe('"10.3" / 2', '5.15'); |
| 77 | shouldBe('10.3 / "2"', '5.15'); |
| 78 | shouldBe('"10.3" / "2"', '5.15'); |
| 79 | shouldBe('10.3 / true', '10.3'); |
| 80 | shouldBe('"10.3" / true', '10.3'); |
| 81 | shouldBe('true / 2', '0.5'); |
| 82 | shouldBe('true / "2"', '0.5'); |
| 83 | shouldBe('false / 2', '0'); |
| 84 | shouldBe('false / "2"', '0'); |
| 85 | |
| 86 | shouldBe('10.3 % 2.1', '1.9000000000000004'); |
| 87 | shouldBe('"10.3" % 2.1', '1.9000000000000004'); |
| 88 | shouldBe('10.3 % "2.1"', '1.9000000000000004'); |
| 89 | shouldBe('"10.3" % "2.1"', '1.9000000000000004'); |
| 90 | shouldBe('10.3 % true', '0.3000000000000007'); |
| 91 | shouldBe('"10.3" % true', '0.3000000000000007'); |
| 92 | shouldBe('true % 2', '1'); |
| 93 | shouldBe('true % "2"', '1'); |
| 94 | shouldBe('false % 2', '0'); |
| 95 | shouldBe('false % "2"', '0'); |
| 96 | |
| 97 | shouldBe('10.3 << 2.1', '40'); |
| 98 | shouldBe('"10.3" << 2.1', '40'); |
| 99 | shouldBe('10.3 << "2.1"', '40'); |
| 100 | shouldBe('"10.3" << "2.1"', '40'); |
| 101 | shouldBe('10.3 << true', '20'); |
| 102 | shouldBe('"10.3" << true', '20'); |
| 103 | shouldBe('10.3 << false', '10'); |
| 104 | shouldBe('"10.3" << false', '10'); |
| 105 | shouldBe('true << 2.1', '4'); |
| 106 | shouldBe('true << "2.1"', '4'); |
| 107 | shouldBe('false << 2.1', '0'); |
| 108 | shouldBe('false << "2.1"', '0'); |
| 109 | |
| 110 | shouldBe('10.3 >> 2.1', '2'); |
| 111 | shouldBe('"10.3" >> 2.1', '2'); |
| 112 | shouldBe('10.3 >> "2.1"', '2'); |
| 113 | shouldBe('"10.3" >> "2.1"', '2'); |
| 114 | shouldBe('10.3 >> true', '5'); |
| 115 | shouldBe('"10.3" >> true', '5'); |
| 116 | shouldBe('10.3 >> false', '10'); |
| 117 | shouldBe('"10.3" >> false', '10'); |
| 118 | shouldBe('true >> 2.1', '0'); |
| 119 | shouldBe('true >> "2.1"', '0'); |
| 120 | shouldBe('false >> 2.1', '0'); |
| 121 | shouldBe('false >> "2.1"', '0'); |
| 122 | |
| 123 | shouldBe('-10.3 >>> 2.1', '1073741821'); |
| 124 | shouldBe('"-10.3">>> 2.1', '1073741821'); |
| 125 | shouldBe('-10.3 >>> "2.1"', '1073741821'); |
| 126 | shouldBe('"-10.3">>> "2.1"', '1073741821'); |
| 127 | shouldBe('-10.3 >>> true', '2147483643'); |
| 128 | shouldBe('"-10.3">>> true', '2147483643'); |
| 129 | shouldBe('-10.3 >>> false', '4294967286'); |
| 130 | shouldBe('"-10.3" >>> false', '4294967286'); |
| 131 | shouldBe('true >>> 2.1', '0'); |
| 132 | shouldBe('true >>> "2.1"', '0'); |
| 133 | shouldBe('false >>> 2.1', '0'); |
| 134 | shouldBe('false >>> "2.1"', '0'); |
| 135 | |
| 136 | |
| 137 | shouldBe('10.3 & 3.1', '2'); |
| 138 | shouldBe('"10.3" & 3.1', '2'); |
| 139 | shouldBe('10.3 & "3.1"', '2'); |
| 140 | shouldBe('"10.3" & "3.1"', '2'); |
| 141 | shouldBe('10.3 & true', '0'); |
| 142 | shouldBe('"10.3" & true', '0'); |
| 143 | shouldBe('11.3 & true', '1'); |
| 144 | shouldBe('"11.3" & true', '1'); |
| 145 | shouldBe('10.3 & false', '0'); |
| 146 | shouldBe('"10.3" & false', '0'); |
| 147 | shouldBe('11.3 & false', '0'); |
| 148 | shouldBe('"11.3" & false', '0'); |
| 149 | shouldBe('true & 3.1', '1'); |
| 150 | shouldBe('true & "3.1"', '1'); |
| 151 | shouldBe('true & 2.1', '0'); |
| 152 | shouldBe('true & "2.1"', '0'); |
| 153 | shouldBe('false & 3.1', '0'); |
| 154 | shouldBe('false & "3.1"', '0'); |
| 155 | shouldBe('false & 2.1', '0'); |
| 156 | shouldBe('false & "2.1"', '0'); |
| 157 | |
| 158 | |
| 159 | shouldBe('10.3 | 3.1', '11'); |
| 160 | shouldBe('"10.3" | 3.1', '11'); |
| 161 | shouldBe('10.3 | "3.1"', '11'); |
| 162 | shouldBe('"10.3" | "3.1"', '11'); |
| 163 | shouldBe('10.3 | true', '11'); |
| 164 | shouldBe('"10.3" | true', '11'); |
| 165 | shouldBe('11.3 | true', '11'); |
| 166 | shouldBe('"11.3" | true', '11'); |
| 167 | shouldBe('10.3 | false', '10'); |
| 168 | shouldBe('"10.3" | false', '10'); |
| 169 | shouldBe('11.3 | false', '11'); |
| 170 | shouldBe('"11.3" | false', '11'); |
| 171 | shouldBe('true | 3.1', '3'); |
| 172 | shouldBe('true | "3.1"', '3'); |
| 173 | shouldBe('true | 2.1', '3'); |
| 174 | shouldBe('true | "2.1"', '3'); |
| 175 | shouldBe('false | 3.1', '3'); |
| 176 | shouldBe('false | "3.1"', '3'); |
| 177 | shouldBe('false | 2.1', '2'); |
| 178 | shouldBe('false | "2.1"', '2'); |
| 179 | |
| 180 | shouldBe('10.3 ^ 3.1', '9'); |
| 181 | shouldBe('"10.3" ^ 3.1', '9'); |
| 182 | shouldBe('10.3 ^ "3.1"', '9'); |
| 183 | shouldBe('"10.3" ^ "3.1"', '9'); |
| 184 | shouldBe('10.3 ^ true', '11'); |
| 185 | shouldBe('"10.3" ^ true', '11'); |
| 186 | shouldBe('11.3 ^ true', '10'); |
| 187 | shouldBe('"11.3" ^ true', '10'); |
| 188 | shouldBe('10.3 ^ false', '10'); |
| 189 | shouldBe('"10.3" ^ false', '10'); |
| 190 | shouldBe('11.3 ^ false', '11'); |
| 191 | shouldBe('"11.3" ^ false', '11'); |
| 192 | shouldBe('true ^ 3.1', '2'); |
| 193 | shouldBe('true ^ "3.1"', '2'); |
| 194 | shouldBe('true ^ 2.1', '3'); |
| 195 | shouldBe('true ^ "2.1"', '3'); |
| 196 | shouldBe('false ^ 3.1', '3'); |
| 197 | shouldBe('false ^ "3.1"', '3'); |
| 198 | shouldBe('false ^ 2.1', '2'); |
| 199 | shouldBe('false ^ "2.1"', '2'); |
| 200 | |
| 201 | shouldBe('10.3 == 3.1', 'false'); |
| 202 | shouldBe('3.1 == 3.1', 'true'); |
| 203 | shouldBe('"10.3" == 3.1', 'false'); |
| 204 | shouldBe('"3.1" == 3.1', 'true'); |
| 205 | shouldBe('10.3 == "3.1"', 'false'); |
| 206 | shouldBe('3.1 == "3.1"', 'true'); |
| 207 | shouldBe('"10.3" == "3.1"', 'false'); |
| 208 | shouldBe('"3.1" == "3.1"', 'true'); |
| 209 | shouldBe('10.3 == true', 'false'); |
| 210 | shouldBe('1 == true', 'true'); |
| 211 | shouldBe('"10.3" == true', 'false'); |
| 212 | shouldBe('"1" == true', 'true'); |
| 213 | shouldBe('10.3 == false', 'false'); |
| 214 | shouldBe('0 == false', 'true'); |
| 215 | shouldBe('"10.3" == false', 'false'); |
| 216 | shouldBe('"0" == false', 'true'); |
| 217 | shouldBe('true == 3.1', 'false'); |
| 218 | shouldBe('true == 1', 'true'); |
| 219 | shouldBe('true == "3.1"', 'false'); |
| 220 | shouldBe('true == "1" ', 'true'); |
| 221 | shouldBe('false == 3.1', 'false'); |
| 222 | shouldBe('false == 0', 'true'); |
| 223 | shouldBe('false == "3.1"', 'false'); |
| 224 | shouldBe('false == "0"', 'true'); |
| 225 | shouldBe('true == true', 'true'); |
| 226 | shouldBe('false == true', 'false'); |
| 227 | shouldBe('true == false', 'false'); |
| 228 | shouldBe('false == false', 'true'); |
| 229 | |
| 230 | shouldBe('10.3 != 3.1', 'true'); |
| 231 | shouldBe('3.1 != 3.1', 'false'); |
| 232 | shouldBe('"10.3" != 3.1', 'true'); |
| 233 | shouldBe('"3.1" != 3.1', 'false'); |
| 234 | shouldBe('10.3 != "3.1"', 'true'); |
| 235 | shouldBe('3.1 != "3.1"', 'false'); |
| 236 | shouldBe('"10.3" != "3.1"', 'true'); |
| 237 | shouldBe('"3.1" != "3.1"', 'false'); |
| 238 | shouldBe('10.3 != true', 'true'); |
| 239 | shouldBe('1 != true', 'false'); |
| 240 | shouldBe('"10.3" != true', 'true'); |
| 241 | shouldBe('"1" != true', 'false'); |
| 242 | shouldBe('10.3 != false', 'true'); |
| 243 | shouldBe('0 != false', 'false'); |
| 244 | shouldBe('"10.3" != false', 'true'); |
| 245 | shouldBe('"0" != false', 'false'); |
| 246 | shouldBe('true != 3.1', 'true'); |
| 247 | shouldBe('true != 1', 'false'); |
| 248 | shouldBe('true != "3.1"', 'true'); |
| 249 | shouldBe('true != "1" ', 'false'); |
| 250 | shouldBe('false != 3.1', 'true'); |
| 251 | shouldBe('false != 0', 'false'); |
| 252 | shouldBe('false != "3.1"', 'true'); |
| 253 | shouldBe('false != "0"', 'false'); |
| 254 | shouldBe('true != true', 'false'); |
| 255 | shouldBe('false != true', 'true'); |
| 256 | shouldBe('true != false', 'true'); |
| 257 | shouldBe('false != false', 'false'); |
| 258 | |
| 259 | shouldBe('10.3 > 3.1', 'true'); |
| 260 | shouldBe('3.1 > 3.1', 'false'); |
| 261 | shouldBe('"10.3" > 3.1', 'true'); |
| 262 | shouldBe('"3.1" > 3.1', 'false'); |
| 263 | shouldBe('10.3 > "3.1"', 'true'); |
| 264 | shouldBe('3.1 > "3.1"', 'false'); |
| 265 | shouldBe('"10.3" > "3.1"', 'false'); |
| 266 | shouldBe('"3.1" > "3.1"', 'false'); |
| 267 | shouldBe('10.3 > true', 'true'); |
| 268 | shouldBe('0 > true', 'false'); |
| 269 | shouldBe('"10.3" > true', 'true'); |
| 270 | shouldBe('"0" > true', 'false'); |
| 271 | shouldBe('10.3 > false', 'true'); |
| 272 | shouldBe('-1 > false', 'false'); |
| 273 | shouldBe('"10.3" > false', 'true'); |
| 274 | shouldBe('"-1" > false', 'false'); |
| 275 | shouldBe('true > 0.1', 'true'); |
| 276 | shouldBe('true > 1.1', 'false'); |
| 277 | shouldBe('true > "0.1"', 'true'); |
| 278 | shouldBe('true > "1.1"', 'false'); |
| 279 | shouldBe('false > -3.1', 'true'); |
| 280 | shouldBe('false > 0', 'false'); |
| 281 | shouldBe('false > "-3.1"', 'true'); |
| 282 | shouldBe('false > "0"', 'false'); |
| 283 | shouldBe('true > true', 'false'); |
| 284 | shouldBe('false > true', 'false'); |
| 285 | shouldBe('true > false', 'true'); |
| 286 | shouldBe('false > false', 'false'); |
| 287 | |
| 288 | shouldBe('10.3 < 3.1', 'false'); |
| 289 | shouldBe('2.1 < 3.1', 'true'); |
| 290 | shouldBe('"10.3" < 3.1', 'false'); |
| 291 | shouldBe('"2.1" < 3.1', 'true'); |
| 292 | shouldBe('10.3 < "3.1"', 'false'); |
| 293 | shouldBe('2.1 < "3.1"', 'true'); |
| 294 | shouldBe('"10.3" < "3.1"', 'true'); |
| 295 | shouldBe('"2.1" < "3.1"', 'true'); |
| 296 | shouldBe('10.3 < true', 'false'); |
| 297 | shouldBe('0 < true', 'true'); |
| 298 | shouldBe('"10.3" < true', 'false'); |
| 299 | shouldBe('"0" < true', 'true'); |
| 300 | shouldBe('10.3 < false', 'false'); |
| 301 | shouldBe('-1 < false', 'true'); |
| 302 | shouldBe('"10.3" < false', 'false'); |
| 303 | shouldBe('"-1" < false', 'true'); |
| 304 | shouldBe('true < 0.1', 'false'); |
| 305 | shouldBe('true < 1.1', 'true'); |
| 306 | shouldBe('true < "0.1"', 'false'); |
| 307 | shouldBe('true < "1.1"', 'true'); |
| 308 | shouldBe('false < -3.1', 'false'); |
| 309 | shouldBe('false < 0.1', 'true'); |
| 310 | shouldBe('false < "-3.1"', 'false'); |
| 311 | shouldBe('false < "0.1"', 'true'); |
| 312 | shouldBe('true < true', 'false'); |
| 313 | shouldBe('false < true', 'true'); |
| 314 | shouldBe('true < false', 'false'); |
| 315 | shouldBe('false < false', 'false'); |
| 316 | |
| 317 | shouldBe('10.3 >= 3.1', 'true'); |
| 318 | shouldBe('2.1 >= 3.1', 'false'); |
| 319 | shouldBe('"10.3" >= 3.1', 'true'); |
| 320 | shouldBe('"2.1" >= 3.1', 'false'); |
| 321 | shouldBe('10.3 >= "3.1"', 'true'); |
| 322 | shouldBe('2.1 >= "3.1"', 'false'); |
| 323 | shouldBe('"10.3" >= "3.1"', 'false'); |
| 324 | shouldBe('"2.1" >= "3.1"', 'false'); |
| 325 | shouldBe('10.3 >= true', 'true'); |
| 326 | shouldBe('0 >= true', 'false'); |
| 327 | shouldBe('"10.3" >= true', 'true'); |
| 328 | shouldBe('"0" >= true', 'false'); |
| 329 | shouldBe('10.3 >= false', 'true'); |
| 330 | shouldBe('-1 >= false', 'false'); |
| 331 | shouldBe('"10.3" >= false', 'true'); |
| 332 | shouldBe('"-1" >= false', 'false'); |
| 333 | shouldBe('true >= 0.1', 'true'); |
| 334 | shouldBe('true >= 1.1', 'false'); |
| 335 | shouldBe('true >= "0.1"', 'true'); |
| 336 | shouldBe('true >= "1.1"', 'false'); |
| 337 | shouldBe('false >= -3.1', 'true'); |
| 338 | shouldBe('false >= 0', 'true'); |
| 339 | shouldBe('false >= "-3.1"', 'true'); |
| 340 | shouldBe('false >= "0"', 'true'); |
| 341 | shouldBe('true >= true', 'true'); |
| 342 | shouldBe('false >= true', 'false'); |
| 343 | shouldBe('true >= false', 'true'); |
| 344 | shouldBe('false >= false', 'true'); |
| 345 | |
| 346 | shouldBe('10.3 <= 3.1', 'false'); |
| 347 | shouldBe('2.1 <= 3.1', 'true'); |
| 348 | shouldBe('"10.3" <= 3.1', 'false'); |
| 349 | shouldBe('"2.1" <= 3.1', 'true'); |
| 350 | shouldBe('10.3 <= "3.1"', 'false'); |
| 351 | shouldBe('2.1 <= "3.1"', 'true'); |
| 352 | shouldBe('"10.3" <= "3.1"', 'true'); |
| 353 | shouldBe('"2.1" <= "3.1"', 'true'); |
| 354 | shouldBe('10.3 <= true', 'false'); |
| 355 | shouldBe('0 <= true', 'true'); |
| 356 | shouldBe('"10.3" <= true', 'false'); |
| 357 | shouldBe('"0" <= true', 'true'); |
| 358 | shouldBe('10.3 <= false', 'false'); |
| 359 | shouldBe('-1 <= false', 'true'); |
| 360 | shouldBe('"10.3" <= false', 'false'); |
| 361 | shouldBe('"-1" <= false', 'true'); |
| 362 | shouldBe('true <= 0.1', 'false'); |
| 363 | shouldBe('true <= 1.1', 'true'); |
| 364 | shouldBe('true <= "0.1"', 'false'); |
| 365 | shouldBe('true <= "1.1"', 'true'); |
| 366 | shouldBe('false <= -3.1', 'false'); |
| 367 | shouldBe('false <= 0.1', 'true'); |
| 368 | shouldBe('false <= "-3.1"', 'false'); |
| 369 | shouldBe('false <= "0.1"', 'true'); |
| 370 | shouldBe('true <= true', 'true'); |
| 371 | shouldBe('false <= true', 'true'); |
| 372 | shouldBe('true <= false', 'false'); |
| 373 | shouldBe('false <= false', 'true'); |
| 374 | |
| 375 | shouldBe('true && true', 'true'); |
| 376 | shouldBe('true && false', 'false'); |
| 377 | shouldBe('false && true', 'false'); |
| 378 | shouldBe('false && false', 'false'); |
| 379 | shouldBe('1.1 && true', 'true'); |
| 380 | shouldBe('1.1 && false', 'false'); |
| 381 | shouldBe('0 && true', '0'); |
| 382 | shouldBe('0 && false', '0'); |
| 383 | shouldBe('"1.1" && true', 'true'); |
| 384 | shouldBe('"1.1" && false', 'false'); |
| 385 | shouldBe('"0" && true', 'true'); |
| 386 | shouldBe('"0" && false', 'false'); |
| 387 | shouldBe('true && 1.1', '1.1'); |
| 388 | shouldBe('true && 0', '0'); |
| 389 | shouldBe('false && 1.1', 'false'); |
| 390 | shouldBe('false && 0', 'false'); |
| 391 | shouldBe('true && "1.1"', '"1.1"'); |
| 392 | shouldBe('true && "0"', '"0"'); |
| 393 | shouldBe('false && "1.1"', 'false'); |
| 394 | shouldBe('false && "0"', 'false'); |
| 395 | shouldBe('1.1 && 1.1', '1.1'); |
| 396 | shouldBe('1.1 && 0', '0'); |
| 397 | shouldBe('0 && 1.1', '0'); |
| 398 | shouldBe('0 && 0', '0'); |
| 399 | shouldBe('"1.1" && 1.1', '1.1'); |
| 400 | shouldBe('"1.1" && 0', '0'); |
| 401 | shouldBe('"0" && 1.1', '1.1'); |
| 402 | shouldBe('"0" && 0', '0'); |
| 403 | shouldBe('1.1 && "1.1"', '"1.1"'); |
| 404 | shouldBe('1.1 && "0"', '"0"'); |
| 405 | shouldBe('0 && "1.1"', '0'); |
| 406 | shouldBe('0 && "0"', '0'); |
| 407 | shouldBe('"1.1" && "1.1"', '"1.1"'); |
| 408 | shouldBe('"1.1" && "0"', '"0"'); |
| 409 | shouldBe('"0" && "1.1"', '"1.1"'); |
| 410 | shouldBe('"0" && "0"', '"0"'); |
| 411 | |
| 412 | shouldBe('true || true', 'true'); |
| 413 | shouldBe('true || false', 'true'); |
| 414 | shouldBe('false || true', 'true'); |
| 415 | shouldBe('false || false', 'false'); |
| 416 | shouldBe('1.1 || true', '1.1'); |
| 417 | shouldBe('1.1 || false', '1.1'); |
| 418 | shouldBe('0 || true', 'true'); |
| 419 | shouldBe('0 || false', 'false'); |
| 420 | shouldBe('"1.1" || true', '"1.1"'); |
| 421 | shouldBe('"1.1" || false', '"1.1"'); |
| 422 | shouldBe('"0" || true', '"0"'); |
| 423 | shouldBe('"0" || false', '"0"'); |
| 424 | shouldBe('true || 1.1', 'true'); |
| 425 | shouldBe('true || 0', 'true'); |
| 426 | shouldBe('false || 1.1', '1.1'); |
| 427 | shouldBe('false || 0', '0'); |
| 428 | shouldBe('true || "1.1"', 'true'); |
| 429 | shouldBe('true || "0"', 'true'); |
| 430 | shouldBe('false || "1.1"', '"1.1"'); |
| 431 | shouldBe('false || "0"', '"0"'); |
| 432 | shouldBe('1.1 || 1.1', '1.1'); |
| 433 | shouldBe('1.1 || 0', '1.1'); |
| 434 | shouldBe('0 || 1.1', '1.1'); |
| 435 | shouldBe('0 || 0', '0'); |
| 436 | shouldBe('"1.1" || 1.1', '"1.1"'); |
| 437 | shouldBe('"1.1" || 0', '"1.1"'); |
| 438 | shouldBe('"0" || 1.1', '"0"'); |
| 439 | shouldBe('"0" || 0', '"0"'); |
| 440 | shouldBe('1.1 || "1.1"', '1.1'); |
| 441 | shouldBe('1.1 || "0"', '1.1'); |
| 442 | shouldBe('0 || "1.1"', '"1.1"'); |
| 443 | shouldBe('0 || "0"', '"0"'); |
| 444 | shouldBe('"1.1" || "1.1"', '"1.1"'); |
| 445 | shouldBe('"1.1" || "0"', '"1.1"'); |
| 446 | shouldBe('"0" || "1.1"', '"0"'); |
| 447 | shouldBe('"0" || "0"', '"0"'); |
| 448 | |
| 449 | shouldBe('+3.1', '3.1'); |
| 450 | shouldBe('+ +3.1', '3.1'); |
| 451 | shouldBe('+"3.1"', '3.1'); |
| 452 | shouldBe('+true', '1'); |
| 453 | shouldBe('+false', '0'); |
| 454 | |
| 455 | shouldBe('-3.1', '-3.1'); |
| 456 | shouldBe('- -3.1', '3.1'); |
| 457 | shouldBe('-"3.1"', '-3.1'); |
| 458 | shouldBe('-true', '-1'); |
| 459 | shouldBe('-false', '-0'); |
| 460 | |
| 461 | shouldBe('~3', '-4'); |
| 462 | shouldBe('~ ~3', '3'); |
| 463 | shouldBe('~"3"', '-4'); |
| 464 | shouldBe('~true', '-2'); |
| 465 | shouldBe('~false', '-1'); |
| 466 | |
| 467 | shouldBe('!true', 'false'); |
| 468 | shouldBe('!false', 'true'); |
| 469 | shouldBe('!3', 'false'); |
| 470 | shouldBe('!0', 'true'); |
| 471 | |
| 472 | shouldBe('10.3 / 0', 'Infinity'); |
| 473 | shouldBe('"10.3" / 0', 'Infinity'); |
| 474 | shouldBe('-10.3 / 0', '-Infinity'); |
| 475 | shouldBe('"-10.3" / 0', '-Infinity'); |
| 476 | shouldBe('true / 0', 'Infinity'); |
| 477 | shouldBe('false / 0', 'NaN'); |
| 478 | shouldBe('0 / 0', 'NaN'); |
| 479 | |
| 480 | shouldBe('10.3 / -0', '-Infinity'); |
| 481 | shouldBe('"10.3" / -0', '-Infinity'); |
| 482 | shouldBe('-10.3 / -0', 'Infinity'); |
| 483 | shouldBe('"-10.3" / -0', 'Infinity'); |
| 484 | shouldBe('true / -0', '-Infinity'); |
| 485 | shouldBe('false / -0', 'NaN'); |
| 486 | shouldBe('0 / -0', 'NaN'); |
| 487 | |
| 488 | shouldBe('1 / -0', '-Infinity'); |
| 489 | shouldBe('1 / - 0', '-Infinity'); |
| 490 | shouldBe('1 / - -0', 'Infinity'); |
| 491 | shouldBe('1 / - - -0', '-Infinity'); |