internal ArrayBufferPrototype( Engine engine, Realm realm, ArrayBufferConstructor constructor, ObjectPrototype objectPrototype) : base(engine, 0) { _prototype = objectPrototype; _realm = realm; _constructor = constructor; }
/// <summary> /// https://tc39.es/ecma262/#sec-clonearraybuffer /// </summary> internal ArrayBufferInstance CloneArrayBuffer( ArrayBufferConstructor constructor, int srcByteOffset, uint srcLength) { var targetBuffer = constructor.AllocateArrayBuffer(_engine.Realm.Intrinsics.ArrayBuffer, srcLength); AssertNotDetached(); var srcBlock = _arrayBufferData; var targetBlock = targetBuffer.ArrayBufferData; // TODO SharedArrayBuffer would use this //CopyDataBlockBytes(targetBlock, 0, srcBlock, srcByteOffset, srcLength). System.Array.Copy(srcBlock, srcByteOffset, targetBlock, 0, srcLength); return(targetBuffer); }