| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 4302648 commit 0e18e68
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -939,10 +939,13 @@ Buffer.prototype.writeIntLE = function(value, offset, byteLength, noAssert) { | |||
| 939 | 939 | ||
| 940 | 940 | var i = 0; | |
| 941 | 941 | var mul = 1; | |
| 942 | - var sub = value < 0 ? 1 : 0; | ||
| 942 | + var sub = 0; | ||
| 943 | 943 | this[offset] = value; | |
| 944 | - while (++i < byteLength && (mul *= 0x100)) | ||
| 944 | + while (++i < byteLength && (mul *= 0x100)) { | ||
| 945 | + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) | ||
| 946 | + sub = 1; | ||
| 945 | 947 | this[offset + i] = ((value / mul) >> 0) - sub; | |
| 948 | + } | ||
| 946 | 949 | ||
| 947 | 950 | return offset + byteLength; | |
| 948 | 951 | }; | |
@@ -962,10 +965,13 @@ Buffer.prototype.writeIntBE = function(value, offset, byteLength, noAssert) { | |||
| 962 | 965 | ||
| 963 | 966 | var i = byteLength - 1; | |
| 964 | 967 | var mul = 1; | |
| 965 | - var sub = value < 0 ? 1 : 0; | ||
| 968 | + var sub = 0; | ||
| 966 | 969 | this[offset + i] = value; | |
| 967 | - while (--i >= 0 && (mul *= 0x100)) | ||
| 970 | + while (--i >= 0 && (mul *= 0x100)) { | ||
| 971 | + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) | ||
| 972 | + sub = 1; | ||
| 968 | 973 | this[offset + i] = ((value / mul) >> 0) - sub; | |
| 974 | + } | ||
| 969 | 975 | ||
| 970 | 976 | return offset + byteLength; | |
| 971 | 977 | }; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1027,6 +1027,26 @@ assert.equal(buf.readInt8(0), -1); | |||
| 1027 | 1027 | assert.deepEqual(buf.toJSON().data, [0xed, 0xcb, 0xaa]); | |
| 1028 | 1028 | assert.equal(buf.readIntBE(0, 3), -0x123456); | |
| 1029 | 1029 | ||
| 1030 | + buf = new Buffer(3); | ||
| 1031 | + buf.writeIntLE(-0x123400, 0, 3); | ||
| 1032 | + assert.deepEqual(buf.toJSON().data, [0x00, 0xcc, 0xed]); | ||
| 1033 | + assert.equal(buf.readIntLE(0, 3), -0x123400); | ||
| 1034 | + | ||
| 1035 | + buf = new Buffer(3); | ||
| 1036 | + buf.writeIntBE(-0x123400, 0, 3); | ||
| 1037 | + assert.deepEqual(buf.toJSON().data, [0xed, 0xcc, 0x00]); | ||
| 1038 | + assert.equal(buf.readIntBE(0, 3), -0x123400); | ||
| 1039 | + | ||
| 1040 | + buf = new Buffer(3); | ||
| 1041 | + buf.writeIntLE(-0x120000, 0, 3); | ||
| 1042 | + assert.deepEqual(buf.toJSON().data, [0x00, 0x00, 0xee]); | ||
| 1043 | + assert.equal(buf.readIntLE(0, 3), -0x120000); | ||
| 1044 | + | ||
| 1045 | + buf = new Buffer(3); | ||
| 1046 | + buf.writeIntBE(-0x120000, 0, 3); | ||
| 1047 | + assert.deepEqual(buf.toJSON().data, [0xee, 0x00, 0x00]); | ||
| 1048 | + assert.equal(buf.readIntBE(0, 3), -0x120000); | ||
| 1049 | + | ||
| 1030 | 1050 | buf = new Buffer(5); | |
| 1031 | 1051 | buf.writeUIntLE(0x1234567890, 0, 5); | |
| 1032 | 1052 | assert.deepEqual(buf.toJSON().data, [0x90, 0x78, 0x56, 0x34, 0x12]); | |
@@ -1056,6 +1076,16 @@ assert.equal(buf.readInt8(0), -1); | |||
| 1056 | 1076 | buf.writeIntBE(-0x1234567890, 0, 5); | |
| 1057 | 1077 | assert.deepEqual(buf.toJSON().data, [0xed, 0xcb, 0xa9, 0x87, 0x70]); | |
| 1058 | 1078 | assert.equal(buf.readIntBE(0, 5), -0x1234567890); | |
| 1079 | + | ||
| 1080 | + buf = new Buffer(5); | ||
| 1081 | + buf.writeIntLE(-0x0012000000, 0, 5); | ||
| 1082 | + assert.deepEqual(buf.toJSON().data, [0x00, 0x00, 0x00, 0xee, 0xff]); | ||
| 1083 | + assert.equal(buf.readIntLE(0, 5), -0x0012000000); | ||
| 1084 | + | ||
| 1085 | + buf = new Buffer(5); | ||
| 1086 | + buf.writeIntBE(-0x0012000000, 0, 5); | ||
| 1087 | + assert.deepEqual(buf.toJSON().data, [0xff, 0xee, 0x00, 0x00, 0x00]); | ||
| 1088 | + assert.equal(buf.readIntBE(0, 5), -0x0012000000); | ||
| 1059 | 1089 | })(); | |
| 1060 | 1090 | ||
| 1061 | 1091 | // test Buffer slice | |
| Back | FazBrowse Home | New Git URL |
0 commit comments