Пример #1
0
 internal ArrayBufferPrototype(
     Engine engine,
     Realm realm,
     ArrayBufferConstructor constructor,
     ObjectPrototype objectPrototype) : base(engine, 0)
 {
     _prototype   = objectPrototype;
     _realm       = realm;
     _constructor = constructor;
 }
Пример #2
0
        /// <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);
        }