UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

152 lines (135 loc) 4.63 kB
// Class: js.html.compat.DataView var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../../hxClasses_stub").default; var $import = require("./../../../import_stub").default; function haxe_io_FPHelper() {return require("./../../../haxe/io/FPHelper");} function js__$Boot_HaxeError() {return require("./../../../js/_Boot/HaxeError");} function haxe_io_Error() {return require("./../../../haxe/io/Error");} // Constructor var DataView = function(buffer,byteOffset,byteLength) { this.buf = buffer; this.offset = byteOffset == null ? 0 : byteOffset; this.length = byteLength == null ? buffer.byteLength - this.offset : byteLength; if(this.offset < 0 || this.length < 0 || this.offset + this.length > buffer.byteLength) { throw new (js__$Boot_HaxeError().default)((haxe_io_Error().default).OutsideBounds); } this.byteLength = this.length; this.byteOffset = this.offset; this.buffer = this.buf; } // Meta DataView.__name__ = ["js","html","compat","DataView"]; DataView.prototype = { getInt8: function(byteOffset) { var v = this.buf.a[this.offset + byteOffset]; if(v >= 128) { return v - 256; } else { return v; } }, getUint8: function(byteOffset) { return this.buf.a[this.offset + byteOffset]; }, getInt16: function(byteOffset,littleEndian) { var v = this.getUint16(byteOffset,littleEndian); if(v >= 32768) { return v - 65536; } else { return v; } }, getUint16: function(byteOffset,littleEndian) { if(littleEndian) { return this.buf.a[this.offset + byteOffset] | this.buf.a[this.offset + byteOffset + 1] << 8; } else { return this.buf.a[this.offset + byteOffset] << 8 | this.buf.a[this.offset + byteOffset + 1]; } }, getInt32: function(byteOffset,littleEndian) { var p = this.offset + byteOffset; var a = this.buf.a[p++]; var b = this.buf.a[p++]; var c = this.buf.a[p++]; var d = this.buf.a[p++]; if(littleEndian) { return a | b << 8 | c << 16 | d << 24; } else { return d | c << 8 | b << 16 | a << 24; } }, getUint32: function(byteOffset,littleEndian) { var v = this.getInt32(byteOffset,littleEndian); if(v < 0) { return v + 4294967296.; } else { return v; } }, getFloat32: function(byteOffset,littleEndian) { return (haxe_io_FPHelper().default).i32ToFloat(this.getInt32(byteOffset,littleEndian)); }, getFloat64: function(byteOffset,littleEndian) { var a = this.getInt32(byteOffset,littleEndian); var b = this.getInt32(byteOffset + 4,littleEndian); return (haxe_io_FPHelper().default).i64ToDouble(littleEndian ? a : b,littleEndian ? b : a); }, setInt8: function(byteOffset,value) { this.buf.a[byteOffset + this.offset] = value < 0 ? value + 128 & 255 : value & 255; }, setUint8: function(byteOffset,value) { this.buf.a[byteOffset + this.offset] = value & 255; }, setInt16: function(byteOffset,value,littleEndian) { this.setUint16(byteOffset,value < 0 ? value + 65536 : value,littleEndian); }, setUint16: function(byteOffset,value,littleEndian) { var p = byteOffset + this.offset; if(littleEndian) { this.buf.a[p] = value & 255; this.buf.a[p++] = value >> 8 & 255; } else { this.buf.a[p++] = value >> 8 & 255; this.buf.a[p] = value & 255; } }, setInt32: function(byteOffset,value,littleEndian) { this.setUint32(byteOffset,value,littleEndian); }, setUint32: function(byteOffset,value,littleEndian) { var p = byteOffset + this.offset; if(littleEndian) { this.buf.a[p++] = value & 255; this.buf.a[p++] = value >> 8 & 255; this.buf.a[p++] = value >> 16 & 255; this.buf.a[p++] = value >>> 24; } else { this.buf.a[p++] = value >>> 24; this.buf.a[p++] = value >> 16 & 255; this.buf.a[p++] = value >> 8 & 255; this.buf.a[p++] = value & 255; } }, setFloat32: function(byteOffset,value,littleEndian) { this.setUint32(byteOffset,(haxe_io_FPHelper().default).floatToI32(value),littleEndian); }, setFloat64: function(byteOffset,value,littleEndian) { var i64 = (haxe_io_FPHelper().default).doubleToI64(value); if(littleEndian) { this.setUint32(byteOffset,i64.low); this.setUint32(byteOffset,i64.high); } else { this.setUint32(byteOffset,i64.high); this.setUint32(byteOffset,i64.low); } } }; DataView.prototype.__class__ = DataView.prototype.constructor = $hxClasses["js.html.compat.DataView"] = DataView; // Init var DataView = $global.DataView || DataView; // Statics // Export exports.default = DataView;