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");