1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- var util = {
-
- debug: false,
-
- inherits: function(ctor, superCtor) {
- ctor.super_ = superCtor;
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- },
- extend: function(dest, source) {
- for(var key in source) {
- if(source.hasOwnProperty(key)) {
- dest[key] = source[key];
- }
- }
- return dest;
- },
- pack: BinaryPack.pack,
- unpack: BinaryPack.unpack,
- randomPort: function() {
- return Math.round(Math.random() * 60535) + 5000;
- },
-
- log: function () {
- if (util.debug) {
- for (var i = 0; i < arguments.length; i++) {
- console.log('*', i, '-- ', arguments[i]);
- }
- }
- },
- setZeroTimeout: (function(global) {
- var timeouts = [];
- var messageName = 'zero-timeout-message';
- // Like setTimeout, but only takes a function argument. There's
- // no time argument (always zero) and no arguments (you have to
- // use a closure).
- function setZeroTimeoutPostMessage(fn) {
- timeouts.push(fn);
- global.postMessage(messageName, '*');
- }
- function handleMessage(event) {
- if (event.source == global && event.data == messageName) {
- if (event.stopPropagation) {
- event.stopPropagation();
- }
- if (timeouts.length) {
- timeouts.shift()();
- }
- }
- }
- if (global.addEventListener) {
- global.addEventListener('message', handleMessage, true);
- } else if (global.attachEvent) {
- global.attachEvent('onmessage', handleMessage);
- }
- return setZeroTimeoutPostMessage;
- }(this)),
-
- blobToArrayBuffer: function(blob, cb){
- var fr = new FileReader();
- fr.onload = function(evt) {
- cb(evt.target.result);
- };
- fr.readAsArrayBuffer(blob);
- },
- blobToBinaryString: function(blob, cb){
- var fr = new FileReader();
- fr.onload = function(evt) {
- cb(evt.target.result);
- };
- fr.readAsBinaryString(blob);
- },
- binaryStringToArrayBuffer: function(binary) {
- var byteArray = new Uint8Array(binary.length);
- for (var i = 0; i < binary.length; i++) {
- byteArray[i] = binary.charCodeAt(i) & 0xff;
- }
- return byteArray.buffer;
- }
- };
|