code: function DataView(buffer, byteOffset, byteLength) {
        if (!(buffer instanceof ArrayBuffer || Class(buffer) === 'ArrayBuffer')) throw TypeError();
  
        byteOffset = ToUint32(byteOffset);
        if (byteOffset > buffer.byteLength)
          throw RangeError('byteOffset out of range');
  
        if (byteLength === undefined)
          byteLength = buffer.byteLength - byteOffset;
        else
          byteLength = ToUint32(byteLength);
  
        if ((byteOffset + byteLength) > buffer.byteLength)
          throw RangeError('byteOffset and length reference an area beyond the end of the buffer');
  
        Object.defineProperty(this, 'buffer', {value: buffer});
        Object.defineProperty(this, 'byteLength', {value: byteLength});
        Object.defineProperty(this, 'byteOffset', {value: byteOffset});
      }
docs: DataView(buffer, byteOffset=0, byteLength=undefined) WebIDL: Constructor(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long byteLength)