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)