starling-framework
Version:
A fast, productive library for 2D cross-platform development.
103 lines (85 loc) • 3.26 kB
JavaScript
// 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;