| var integers = require("integers"); | |
| function checkOne(val, signed, typeName) { | |
| typeName = (signed ? 'signed_' : 'unsigned_') + typeName | |
| var size = integers[typeName + '_size']() | |
| if ((!signed && val < 0) || (size < 8)) | |
| return // out of range, skip test | |
| ret = integers[typeName + '_identity'](val) | |
| if (ret !== val) | |
| throw "Incorrect value: expected " + val + ", got " + ret | |
| } | |
| function checkAll(val) { | |
| checkOne(val, true, 'long') | |
| checkOne(val, false, 'long') | |
| checkOne(val, true, 'long_long') | |
| checkOne(val, false, 'long_long') | |
| } | |
| checkAll(3902408827) | |
| checkAll(Number.MAX_SAFE_INTEGER) | |
| checkAll(Number.MIN_SAFE_INTEGER) |