mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-10 04:12:22 +02:00
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
//
|
|
// dataViewHelpers.js
|
|
// examples/libraries
|
|
//
|
|
// Copyright 2014 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
if (typeof DataView.prototype.indexOf !== "function") {
|
|
DataView.prototype.indexOf = function (searchString, position) {
|
|
var searchLength = searchString.length,
|
|
byteArrayLength = this.byteLength,
|
|
maxSearchIndex = byteArrayLength - searchLength,
|
|
searchCharCodes = [],
|
|
found,
|
|
i,
|
|
j;
|
|
|
|
searchCharCodes[searchLength] = 0;
|
|
for (j = 0; j < searchLength; j += 1) {
|
|
searchCharCodes[j] = searchString.charCodeAt(j);
|
|
}
|
|
|
|
i = position;
|
|
found = false;
|
|
while (i < maxSearchIndex && !found) {
|
|
j = 0;
|
|
while (j < searchLength && this.getUint8(i + j) === searchCharCodes[j]) {
|
|
j += 1;
|
|
}
|
|
found = (j === searchLength);
|
|
i += 1;
|
|
}
|
|
|
|
return found ? i - 1 : -1;
|
|
};
|
|
}
|
|
|
|
if (typeof DataView.prototype.string !== "function") {
|
|
DataView.prototype.string = function (start, length) {
|
|
var charCodes = [],
|
|
end,
|
|
i;
|
|
|
|
if (start === undefined) {
|
|
start = 0;
|
|
}
|
|
if (length === undefined) {
|
|
length = this.length;
|
|
}
|
|
|
|
end = start + length;
|
|
for (i = start; i < end; i += 1) {
|
|
charCodes.push(this.getUint8(i));
|
|
}
|
|
|
|
return String.fromCharCode.apply(String, charCodes);
|
|
};
|
|
}
|
|
|