| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| description: | |
| Provide a list for original and expected values for different byte |
| conversions. |
| This helper is mostly used on tests for TypedArray and DataView, and each |
| array from the expected values must match the original values array on every |
| index containing its original value. |
| defines: [byteConversionValues] |
| ---*/ |
| var byteConversionValues = { |
| values: [ |
| 127, // 2 ** 7 - 1 |
| 128, // 2 ** 7 |
| 32767, // 2 ** 15 - 1 |
| 32768, // 2 ** 15 |
| 2147483647, // 2 ** 31 - 1 |
| 2147483648, // 2 ** 31 |
| 255, // 2 ** 8 - 1 |
| 256, // 2 ** 8 |
| 65535, // 2 ** 16 - 1 |
| 65536, // 2 ** 16 |
| 4294967295, // 2 ** 32 - 1 |
| 4294967296, // 2 ** 32 |
| 9007199254740991, // 2 ** 53 - 1 |
| 9007199254740992, // 2 ** 53 |
| 1.1, |
| 0.1, |
| 0.5, |
| 0.50000001, |
| 0.6, |
| 0.7, |
| undefined, |
| -1, |
| -0, |
| -0.1, |
| -1.1, |
| NaN, |
| -127, // - ( 2 ** 7 - 1 ) |
| -128, // - ( 2 ** 7 ) |
| -32767, // - ( 2 ** 15 - 1 ) |
| -32768, // - ( 2 ** 15 ) |
| -2147483647, // - ( 2 ** 31 - 1 ) |
| -2147483648, // - ( 2 ** 31 ) |
| -255, // - ( 2 ** 8 - 1 ) |
| -256, // - ( 2 ** 8 ) |
| -65535, // - ( 2 ** 16 - 1 ) |
| -65536, // - ( 2 ** 16 ) |
| -4294967295, // - ( 2 ** 32 - 1 ) |
| -4294967296, // - ( 2 ** 32 ) |
| Infinity, |
| -Infinity, |
| 0, |
| 2049, // an integer which rounds down under ties-to-even when cast to float16 |
| 2051, // an integer which rounds up under ties-to-even when cast to float16 |
| 0.00006103515625, // smallest normal float16 |
| 0.00006097555160522461, // largest subnormal float16 |
| 5.960464477539063e-8, // smallest float16 |
| 2.9802322387695312e-8, // largest double which rounds to 0 when cast to float16 |
| 2.980232238769532e-8, // smallest double which does not round to 0 when cast to float16 |
| 8.940696716308594e-8, // a double which rounds up to a subnormal under ties-to-even when cast to float16 |
| 1.4901161193847656e-7, // a double which rounds down to a subnormal under ties-to-even when cast to float16 |
| 1.490116119384766e-7, // the next double above the one on the previous line one |
| 65504, // max finite float16 |
| 65520, // smallest double which rounds to infinity when cast to float16 |
| 65519.99999999999, // largest double which does not round to infinity when cast to float16 |
| 0.000061005353927612305, // smallest double which rounds to a non-subnormal when cast to float16 |
| 0.0000610053539276123 // largest double which rounds to a subnormal when cast to float16 |
| ], |
| |
| expected: { |
| Int8: [ |
| 127, // 127 |
| -128, // 128 |
| -1, // 32767 |
| 0, // 32768 |
| -1, // 2147483647 |
| 0, // 2147483648 |
| -1, // 255 |
| 0, // 256 |
| -1, // 65535 |
| 0, // 65536 |
| -1, // 4294967295 |
| 0, // 4294967296 |
| -1, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| -1, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| -1, // -1.1 |
| 0, // NaN |
| -127, // -127 |
| -128, // -128 |
| 1, // -32767 |
| 0, // -32768 |
| 1, // -2147483647 |
| 0, // -2147483648 |
| 1, // -255 |
| 0, // -256 |
| 1, // -65535 |
| 0, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 1, // 2049 |
| 3, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| -32, // 65504 |
| -16, // 65520 |
| -17, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Uint8: [ |
| 127, // 127 |
| 128, // 128 |
| 255, // 32767 |
| 0, // 32768 |
| 255, // 2147483647 |
| 0, // 2147483648 |
| 255, // 255 |
| 0, // 256 |
| 255, // 65535 |
| 0, // 65536 |
| 255, // 4294967295 |
| 0, // 4294967296 |
| 255, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| 255, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| 255, // -1.1 |
| 0, // NaN |
| 129, // -127 |
| 128, // -128 |
| 1, // -32767 |
| 0, // -32768 |
| 1, // -2147483647 |
| 0, // -2147483648 |
| 1, // -255 |
| 0, // -256 |
| 1, // -65535 |
| 0, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 1, // 2049 |
| 3, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| 224, // 65504 |
| 240, // 65520 |
| 239, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Uint8Clamped: [ |
| 127, // 127 |
| 128, // 128 |
| 255, // 32767 |
| 255, // 32768 |
| 255, // 2147483647 |
| 255, // 2147483648 |
| 255, // 255 |
| 255, // 256 |
| 255, // 65535 |
| 255, // 65536 |
| 255, // 4294967295 |
| 255, // 4294967296 |
| 255, // 9007199254740991 |
| 255, // 9007199254740992 |
| 1, // 1.1, |
| 0, // 0.1 |
| 0, // 0.5 |
| 1, // 0.50000001, |
| 1, // 0.6 |
| 1, // 0.7 |
| 0, // undefined |
| 0, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| 0, // -1.1 |
| 0, // NaN |
| 0, // -127 |
| 0, // -128 |
| 0, // -32767 |
| 0, // -32768 |
| 0, // -2147483647 |
| 0, // -2147483648 |
| 0, // -255 |
| 0, // -256 |
| 0, // -65535 |
| 0, // -65536 |
| 0, // -4294967295 |
| 0, // -4294967296 |
| 255, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 255, // 2049 |
| 255, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| 255, // 65504 |
| 255, // 65520 |
| 255, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Int16: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| -32768, // 32768 |
| -1, // 2147483647 |
| 0, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| -1, // 65535 |
| 0, // 65536 |
| -1, // 4294967295 |
| 0, // 4294967296 |
| -1, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| -1, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| -1, // -1.1 |
| 0, // NaN |
| -127, // -127 |
| -128, // -128 |
| -32767, // -32767 |
| -32768, // -32768 |
| 1, // -2147483647 |
| 0, // -2147483648 |
| -255, // -255 |
| -256, // -256 |
| 1, // -65535 |
| 0, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| -32, // 65504 |
| -16, // 65520 |
| -17, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Uint16: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| 32768, // 32768 |
| 65535, // 2147483647 |
| 0, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| 65535, // 65535 |
| 0, // 65536 |
| 65535, // 4294967295 |
| 0, // 4294967296 |
| 65535, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| 65535, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| 65535, // -1.1 |
| 0, // NaN |
| 65409, // -127 |
| 65408, // -128 |
| 32769, // -32767 |
| 32768, // -32768 |
| 1, // -2147483647 |
| 0, // -2147483648 |
| 65281, // -255 |
| 65280, // -256 |
| 1, // -65535 |
| 0, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| 65504, // 65504 |
| 65520, // 65520 |
| 65519, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Int32: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| 32768, // 32768 |
| 2147483647, // 2147483647 |
| -2147483648, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| 65535, // 65535 |
| 65536, // 65536 |
| -1, // 4294967295 |
| 0, // 4294967296 |
| -1, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| -1, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| -1, // -1.1 |
| 0, // NaN |
| -127, // -127 |
| -128, // -128 |
| -32767, // -32767 |
| -32768, // -32768 |
| -2147483647, // -2147483647 |
| -2147483648, // -2147483648 |
| -255, // -255 |
| -256, // -256 |
| -65535, // -65535 |
| -65536, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| 65504, // 65504 |
| 65520, // 65520 |
| 65519, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Uint32: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| 32768, // 32768 |
| 2147483647, // 2147483647 |
| 2147483648, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| 65535, // 65535 |
| 65536, // 65536 |
| 4294967295, // 4294967295 |
| 0, // 4294967296 |
| 4294967295, // 9007199254740991 |
| 0, // 9007199254740992 |
| 1, // 1.1 |
| 0, // 0.1 |
| 0, // 0.5 |
| 0, // 0.50000001, |
| 0, // 0.6 |
| 0, // 0.7 |
| 0, // undefined |
| 4294967295, // -1 |
| 0, // -0 |
| 0, // -0.1 |
| 4294967295, // -1.1 |
| 0, // NaN |
| 4294967169, // -127 |
| 4294967168, // -128 |
| 4294934529, // -32767 |
| 4294934528, // -32768 |
| 2147483649, // -2147483647 |
| 2147483648, // -2147483648 |
| 4294967041, // -255 |
| 4294967040, // -256 |
| 4294901761, // -65535 |
| 4294901760, // -65536 |
| 1, // -4294967295 |
| 0, // -4294967296 |
| 0, // Infinity |
| 0, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0, // 0.00006103515625 |
| 0, // 0.00006097555160522461 |
| 0, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 0, // 2.980232238769532e-8 |
| 0, // 8.940696716308594e-8 |
| 0, // 1.4901161193847656e-7 |
| 0, // 1.490116119384766e-7 |
| 65504, // 65504 |
| 65520, // 65520 |
| 65519, // 65519.99999999999 |
| 0, // 0.000061005353927612305 |
| 0 // 0.0000610053539276123 |
| ], |
| Float16: [ |
| 127, // 127 |
| 128, // 128 |
| 32768, // 32767 |
| 32768, // 32768 |
| Infinity, // 2147483647 |
| Infinity, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| Infinity, // 65535 |
| Infinity, // 65536 |
| Infinity, // 4294967295 |
| Infinity, // 4294967296 |
| Infinity, // 9007199254740991 |
| Infinity, // 9007199254740992 |
| 1.099609375, // 1.1 |
| 0.0999755859375, // 0.1 |
| 0.5, // 0.5 |
| 0.5, // 0.50000001, |
| 0.60009765625, // 0.6 |
| 0.7001953125, // 0.7 |
| NaN, // undefined |
| -1, // -1 |
| -0, // -0 |
| -0.0999755859375, // -0.1 |
| -1.099609375, // -1.1 |
| NaN, // NaN |
| -127, // -127 |
| -128, // -128 |
| -32768, // -32767 |
| -32768, // -32768 |
| -Infinity, // -2147483647 |
| -Infinity, // -2147483648 |
| -255, // -255 |
| -256, // -256 |
| -Infinity, // -65535 |
| -Infinity, // -65536 |
| -Infinity, // -4294967295 |
| -Infinity, // -4294967296 |
| Infinity, // Infinity |
| -Infinity, // -Infinity |
| 0, // 0 |
| 2048, // 2049 |
| 2052, // 2051 |
| 0.00006103515625, // 0.00006103515625 |
| 0.00006097555160522461, // 0.00006097555160522461 |
| 5.960464477539063e-8, // 5.960464477539063e-8 |
| 0, // 2.9802322387695312e-8 |
| 5.960464477539063e-8, // 2.980232238769532e-8 |
| 1.1920928955078125e-7, // 8.940696716308594e-8 |
| 1.1920928955078125e-7, // 1.4901161193847656e-7 |
| 1.7881393432617188e-7, // 1.490116119384766e-7 |
| 65504, // 65504 |
| Infinity, // 65520 |
| 65504, // 65519.99999999999 |
| 0.00006103515625, // 0.000061005353927612305 |
| 0.00006097555160522461 // 0.0000610053539276123 |
| ], |
| Float32: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| 32768, // 32768 |
| 2147483648, // 2147483647 |
| 2147483648, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| 65535, // 65535 |
| 65536, // 65536 |
| 4294967296, // 4294967295 |
| 4294967296, // 4294967296 |
| 9007199254740992, // 9007199254740991 |
| 9007199254740992, // 9007199254740992 |
| 1.100000023841858, // 1.1 |
| 0.10000000149011612, // 0.1 |
| 0.5, // 0.5 |
| 0.5, // 0.50000001, |
| 0.6000000238418579, // 0.6 |
| 0.699999988079071, // 0.7 |
| NaN, // undefined |
| -1, // -1 |
| -0, // -0 |
| -0.10000000149011612, // -0.1 |
| -1.100000023841858, // -1.1 |
| NaN, // NaN |
| -127, // -127 |
| -128, // -128 |
| -32767, // -32767 |
| -32768, // -32768 |
| -2147483648, // -2147483647 |
| -2147483648, // -2147483648 |
| -255, // -255 |
| -256, // -256 |
| -65535, // -65535 |
| -65536, // -65536 |
| -4294967296, // -4294967295 |
| -4294967296, // -4294967296 |
| Infinity, // Infinity |
| -Infinity, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0.00006103515625, // 0.00006103515625 |
| 0.00006097555160522461, // 0.00006097555160522461 |
| 5.960464477539063e-8, // 5.960464477539063e-8 |
| 2.9802322387695312e-8, // 2.9802322387695312e-8 |
| 2.9802322387695312e-8, // 2.980232238769532e-8 |
| 8.940696716308594e-8, // 8.940696716308594e-8 |
| 1.4901161193847656e-7, // 1.4901161193847656e-7 |
| 1.4901161193847656e-7, // 1.490116119384766e-7 |
| 65504, // 65504 |
| 65520, // 65520 |
| 65520, // 65519.99999999999 |
| 0.000061005353927612305, // 0.000061005353927612305 |
| 0.000061005353927612305 // 0.0000610053539276123 |
| ], |
| Float64: [ |
| 127, // 127 |
| 128, // 128 |
| 32767, // 32767 |
| 32768, // 32768 |
| 2147483647, // 2147483647 |
| 2147483648, // 2147483648 |
| 255, // 255 |
| 256, // 256 |
| 65535, // 65535 |
| 65536, // 65536 |
| 4294967295, // 4294967295 |
| 4294967296, // 4294967296 |
| 9007199254740991, // 9007199254740991 |
| 9007199254740992, // 9007199254740992 |
| 1.1, // 1.1 |
| 0.1, // 0.1 |
| 0.5, // 0.5 |
| 0.50000001, // 0.50000001, |
| 0.6, // 0.6 |
| 0.7, // 0.7 |
| NaN, // undefined |
| -1, // -1 |
| -0, // -0 |
| -0.1, // -0.1 |
| -1.1, // -1.1 |
| NaN, // NaN |
| -127, // -127 |
| -128, // -128 |
| -32767, // -32767 |
| -32768, // -32768 |
| -2147483647, // -2147483647 |
| -2147483648, // -2147483648 |
| -255, // -255 |
| -256, // -256 |
| -65535, // -65535 |
| -65536, // -65536 |
| -4294967295, // -4294967295 |
| -4294967296, // -4294967296 |
| Infinity, // Infinity |
| -Infinity, // -Infinity |
| 0, // 0 |
| 2049, // 2049 |
| 2051, // 2051 |
| 0.00006103515625, // 0.00006103515625 |
| 0.00006097555160522461, // 0.00006097555160522461 |
| 5.960464477539063e-8, // 5.960464477539063e-8 |
| 2.9802322387695312e-8, // 2.9802322387695312e-8 |
| 2.980232238769532e-8, // 2.980232238769532e-8 |
| 8.940696716308594e-8, // 8.940696716308594e-8 |
| 1.4901161193847656e-7, // 1.4901161193847656e-7 |
| 1.490116119384766e-7, // 1.490116119384766e-7 |
| 65504, // 65504 |
| 65520, // 65520 |
| 65519.99999999999, // 65519.99999999999 |
| 0.000061005353927612305, // 0.000061005353927612305 |
| 0.0000610053539276123 // 0.0000610053539276123 |
| ] |
| } |
| }; |