UNPKG

openfl

Version:

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

97 lines (79 loc) 2.39 kB
// Class: haxe.io.BytesBuffer 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 $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function haxe_io_Error() {return require("./../../haxe/io/Error");} function haxe_io_Bytes() {return require("./../../haxe/io/Bytes");} // Constructor var BytesBuffer = function() { this.pos = 0; this.size = 0; } // Meta BytesBuffer.__name__ = "haxe.io.BytesBuffer"; BytesBuffer.__isInterface__ = false; BytesBuffer.prototype = { addByte: function(byte) { if(this.pos == this.size) { this.grow(1); } this.view.setUint8(this.pos++,byte); }, add: function(src) { if(this.pos + src.length > this.size) { this.grow(src.length); } if(this.size == 0) { return; } var sub = new Uint8Array(src.b.buffer,src.b.byteOffset,src.length); this.u8.set(sub,this.pos); this.pos += src.length; }, addBytes: function(src,pos,len) { if(pos < 0 || len < 0 || pos + len > src.length) { throw new (js__$Boot_HaxeError().default)((haxe_io_Error().default).OutsideBounds); } if(this.pos + len > this.size) { this.grow(len); } if(this.size == 0) { return; } var sub = new Uint8Array(src.b.buffer,src.b.byteOffset + pos,len); this.u8.set(sub,this.pos); this.pos += len; }, grow: function(delta) { var req = this.pos + delta; var nsize = this.size == 0 ? 16 : this.size; while(nsize < req) nsize = nsize * 3 >> 1; var nbuf = new ArrayBuffer(nsize); var nu8 = new Uint8Array(nbuf); if(this.size > 0) { nu8.set(this.u8); } this.size = nsize; this.buffer = nbuf; this.u8 = nu8; this.view = new DataView(this.buffer); }, getBytes: function() { if(this.size == 0) { return (haxe_io_Bytes().default).alloc(0); } var b = new (haxe_io_Bytes().default)(this.buffer); b.length = this.pos; return b; } }; BytesBuffer.prototype.__class__ = BytesBuffer.prototype.constructor = $hxClasses["haxe.io.BytesBuffer"] = BytesBuffer; // Init // Statics // Export exports.default = BytesBuffer;