From d826aa91166cd64d4694c9e2046e980f7a901c52 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sat, 8 Dec 2018 14:04:13 +0000 Subject: [PATCH] Repair errors that made Bytes (and Bytes.from) non-idempotent --- implementations/javascript/src/values.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/implementations/javascript/src/values.js b/implementations/javascript/src/values.js index b786cf0..ef4d6d4 100644 --- a/implementations/javascript/src/values.js +++ b/implementations/javascript/src/values.js @@ -133,8 +133,10 @@ function Bytes(maybeByteIterable) { _installView.call(this, new Uint8Array(maybeByteIterable)); } else if (typeof maybeByteIterable.length === 'number') { _installView.call(this, Uint8Array.from(maybeByteIterable)); + } else if (maybeByteIterable instanceof Bytes) { + _installView.call(this, maybeByteIterable._view); } else if (typeof maybeByteIterable.size === 'number') { - _installView.call(this, new ArrayBuffer(maybeByteIterable.size)); + _installView.call(this, new Uint8Array(maybeByteIterable.size)); for (let i = 0; i < this.size; i++) { this._view[i] = maybeByteIterable.get(i); } } else { const e = new TypeError("Attempt to initialize Bytes from unsupported value");