From c84c73cfeae06ab882cf9143f0a65ace38d637b4 Mon Sep 17 00:00:00 2001 From: kawanet Date: Sun, 25 Oct 2020 01:53:24 +0900 Subject: [PATCH] fix #19 Buffer.alloc() --- int64-buffer.js | 2 +- test/test.js | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/int64-buffer.js b/int64-buffer.js index fb6109b..c713150 100644 --- a/int64-buffer.js +++ b/int64-buffer.js @@ -100,7 +100,7 @@ var Uint64BE, Int64BE, Uint64LE, Int64LE; raddix = offset; value = buffer; offset = 0; - buffer = new _storage(8); + buffer = (storage === BUFFER) ? BUFFER.alloc(8) : new _storage(8); } that.buffer = buffer; diff --git a/test/test.js b/test/test.js index 0612c9e..fbc6674 100755 --- a/test/test.js +++ b/test/test.js @@ -271,8 +271,16 @@ function allTests(uint64Name, int64Name) { var highpos = LE ? 15 : 8; var lowpos = LE ? 8 : 15; + function alloc(size) { + // Buffer() is deprecated + if (StorageClass === BUFFER) return BUFFER.alloc(size); + + // other than Buffer + return new StorageClass(size); + } + itSkip(className + "(" + storageName + ",offset)", function() { - var buffer = new StorageClass(24); + var buffer = alloc(24); var raw = buffer; if (isArrayBuffer(buffer)) buffer = (raw = new Uint8Array(buffer)).buffer; for (var i = 0; i < 24; i++) { @@ -299,7 +307,7 @@ function allTests(uint64Name, int64Name) { }); itSkip(className + "(" + storageName + ",offset,number)", function() { - var buffer = new StorageClass(24); + var buffer = alloc(24); var val = new Int64Class(buffer, 8, 1234567890); assert.equal(val.toNumber(), 1234567890); assert.equal(val.toString(), "1234567890"); @@ -310,7 +318,7 @@ function allTests(uint64Name, int64Name) { }); itSkip(className + "(" + storageName + ",offset,high,low)", function() { - var buffer = new StorageClass(24); + var buffer = alloc(24); var val = new Int64Class(buffer, 8, 0x12345678, 0x90abcdef); assert.equal(val.toString(16), "1234567890abcdef"); if (isArrayBuffer(buffer)) buffer = new Uint8Array(buffer); @@ -319,7 +327,7 @@ function allTests(uint64Name, int64Name) { }); itSkip(className + "(" + storageName + ",offset,string,raddix)", function() { - var buffer = new StorageClass(24); + var buffer = alloc(24); var val = new Int64Class(buffer, 8, "1234567890", 16); assert.equal(val.toNumber(), 0x1234567890); assert.equal(val.toString(16), "1234567890"); @@ -330,7 +338,7 @@ function allTests(uint64Name, int64Name) { }); itSkip(className + "(" + storageName + ",offset,array,offset)", function() { - var buffer = new StorageClass(16); + var buffer = alloc(16); var src = LE ? [].concat(POSB, NEGB) : [].concat(NEGB, POSB); var val = Int64Class(buffer, 8, src, 4); assert.equal(val.toString(16), "7654321012345678");