UNPKG

starling-framework

Version:

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

103 lines (85 loc) 3.26 kB
// Class: starling.utils.ByteArrayUtil 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 openfl_utils_ByteArray() {return $import(require("openfl/utils/ByteArray"));} function _$UInt_UInt_$Impl_$() {return require("./../../_UInt/UInt_Impl_");} function Std() {return require("./../../Std");} function starling_utils_MathUtil() {return require("./../../starling/utils/MathUtil");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function openfl_errors_RangeError() {return $import(require("openfl/errors/RangeError"));} // Constructor var ByteArrayUtil = function(){} // Meta ByteArrayUtil.__name__ = "starling.utils.ByteArrayUtil"; ByteArrayUtil.__isInterface__ = false; ByteArrayUtil.prototype = { }; ByteArrayUtil.prototype.__class__ = ByteArrayUtil.prototype.constructor = $hxClasses["starling.utils.ByteArrayUtil"] = ByteArrayUtil; // Init // Statics ByteArrayUtil.startsWithString = function(bytes,string) { var start = 0; var length = bytes.length; var wantedBytes = new (openfl_utils_ByteArray().default)(); wantedBytes.writeUTFBytes(string); if(length >= 4 && (bytes.get(0) == 0 && bytes.get(1) == 0 && bytes.get(2) == 254 && bytes.get(3) == 255) || bytes.get(0) == 255 && bytes.get(1) == 254 && bytes.get(2) == 0 && bytes.get(3) == 0) { start = 4; } else if(length >= 3 && bytes.get(0) == 239 && bytes.get(1) == 187 && bytes.get(2) == 191) { start = 3; } else if(length >= 2 && (bytes.get(0) == 254 && bytes.get(1) == 255) || bytes.get(0) == 255 && bytes.get(1) == 254) { start = 2; } var _g = start; var _g1 = length; while(_g < _g1) { var i = _g++; var byte = bytes.get(i); if(byte != 0 && byte != 10 && byte != 13 && byte != 32) { return ByteArrayUtil.compareByteArrays(bytes,i,wantedBytes,0,wantedBytes.length); } } return false; } ByteArrayUtil.startsWithBytes = function(byteArray,firstBytes) { if((_$UInt_UInt_$Impl_$().default).gt(firstBytes.length,byteArray.length)) { return false; } var len = firstBytes.length; var _g = 0; var _g1 = len; while(_g < _g1) { var i = _g++; if(byteArray.get(i) != firstBytes[i]) { return false; } } return true; } ByteArrayUtil.compareByteArrays = function(a,indexA,b,indexB,numBytes) { if(numBytes == null) { numBytes = -1; } var b1 = indexA + numBytes - a.length; var b2 = indexB + numBytes - b.length; if(numBytes < 0) { numBytes = (Std().default).int((starling_utils_MathUtil().default).min((_$UInt_UInt_$Impl_$().default).toFloat(a.length - indexA),(_$UInt_UInt_$Impl_$().default).toFloat(b.length - indexB))); } else if(b1 > 0 || b2 > 0) { throw new (js__$Boot_HaxeError().default)(new (openfl_errors_RangeError().default)()); } var _g = 0; var _g1 = numBytes; while(_g < _g1) { var i = _g++; if(a.get(indexA + i) != b.get(indexB + i)) { return false; } } return true; } // Export exports.default = ByteArrayUtil;