Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 8FAF3200B49 for ; Wed, 3 Aug 2016 09:40:46 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8E29A160A86; Wed, 3 Aug 2016 07:40:46 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 35F7D160A64 for ; Wed, 3 Aug 2016 09:40:45 +0200 (CEST) Received: (qmail 98608 invoked by uid 500); 3 Aug 2016 07:40:39 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 98415 invoked by uid 99); 3 Aug 2016 07:40:39 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Aug 2016 07:40:39 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id F3861E3839; Wed, 3 Aug 2016 07:40:38 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: harbs@apache.org To: commits@flex.apache.org Date: Wed, 03 Aug 2016 07:40:44 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [07/12] git commit: [flex-asjs] [refs/heads/develop] - [Improvements] More performance tweaks, consistency tweaks, and doc improvements. archived-at: Wed, 03 Aug 2016 07:40:46 -0000 [Improvements] More performance tweaks, consistency tweaks, and doc improvements. Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/febae6a6 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/febae6a6 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/febae6a6 Branch: refs/heads/develop Commit: febae6a6e2237abee1da67d14f98bce71e3f1792 Parents: f791f02 Author: greg-dove Authored: Tue Jul 26 15:02:27 2016 +1200 Committer: greg-dove Committed: Tue Jul 26 15:02:27 2016 +1200 ---------------------------------------------------------------------- .../flex/org/apache/flex/utils/BinaryData.as | 235 ++++++++++++------- .../main/flex/org/apache/flex/utils/Endian.as | 20 +- 2 files changed, 156 insertions(+), 99 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/febae6a6/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/BinaryData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/BinaryData.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/BinaryData.as index d44ac0e..29e4e76 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/BinaryData.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/BinaryData.as @@ -62,6 +62,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Utility method to create a BinaryData object from a string. * + * @param {String} str The string to convert to BinaryData as UTF-8 bytes. + * @return {BinaryData} The BinaryData instance from the UTF-8 bytes of the string. * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -78,13 +81,19 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Gets a reference to the internal array of bytes. * On the Flash side, this is a ByteArray. * On the JS side, it's a Uint8Array. - * This is primarily used for indexed access to the bytes, and internally - * where the platform-specific implementation is significant. + * This is primarily used for indexed access to the bytes, and particularly + * where platform-specific performance optimization is required. + * To maintain cross-target consistency, you should not alter the length + * of the ByteArray in any swf specific code, you should assume its length is fixed + * (even though it is not). + * + * @return {ByteArray} The BinaryData backing array as ByteArray on flash. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.7.0 + */ COMPILE::SWF public function get array():ByteArray @@ -102,6 +111,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * of the ByteArray in any swf specific code, assume its length is fixed * (even though it is not). * + * @return {Uint8Array} The BinaryData backing array as Uint8Array in javascript. + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -112,6 +123,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput { return getTypedArray(); } + + COMPILE::JS private var _endian:String = Endian.BIG_ENDIAN; @@ -180,6 +193,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Write a Boolean value (as a single byte) at the current position * + * @param {Boolean} value The boolean value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -201,6 +216,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Write a byte of binary data at the current position * + * @param {int} byte The value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -214,12 +231,10 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } COMPILE::JS { - var view:Uint8Array; - - ensureWritableBytes(1); - - view = new Uint8Array(ba, _position, 1); - view[0] = byte; + if (_position + 1 > _len) { + setBufferSize(_position + 1); + } + new Uint8Array(ba, _position, 1)[0] = byte; _position++; } } @@ -229,6 +244,10 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * is omitted or is zero, it will represent the entire length of the source * starting from offset. If offset is omitted also, it defaults to zero. * + * @param {BinaryData} source The source BinaryData to write from at the current position + * @param {uint} offset The optional offset value of the starting bytes to write inside source + * @param {uint} length The optional length value of the bytes to write from offset in source + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -245,9 +264,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput { if (length == 0) length = source.length - offset ; - - ensureWritableBytes(length); - + if (_position + length > _len) { + setBufferSize(_position + length); + } var dest:Uint8Array = new Uint8Array(ba, _position, length); var src:Uint8Array = new Uint8Array(source.ba, offset,length); dest.set(src); @@ -257,7 +276,10 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } /** - * Write a short integer of binary data at the current position + * Write a short integer (16 bits, typically represented by a 32 bit int parameter between -32768 and 65535) + * of binary data at the current position + * + * @param {int} short The value to write into the BinaryData at the current position * * @langversion 3.0 * @playerversion Flash 10.2 @@ -275,7 +297,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput if (!_sysEndian) { short = (((short & 0xff00) >>> 8) | ((short & 0xff) <<8 )); } - ensureWritableBytes(2); + if (_position + 2 > _len) { + setBufferSize(_position + 2); + } new Int16Array(ba, _position, 1)[0] = short; _position += 2; } @@ -284,24 +308,28 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Write an unsigned int (32 bits) of binary data at the current position * + * @param {uint} val The value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function writeUnsignedInt(unsigned:uint):void + public function writeUnsignedInt(val:uint):void { COMPILE::SWF { - ba.writeUnsignedInt(unsigned); + ba.writeUnsignedInt(val); } COMPILE::JS { if (!_sysEndian) { - unsigned = ((unsigned & 0xff000000) >>> 24) | ((unsigned & 0x00ff0000) >> 8) | ((unsigned & 0x0000ff00) << 8) | (unsigned << 24); + val = ((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24); + } + if (_position + 4 > _len) { + setBufferSize(_position + 4); } - ensureWritableBytes(4); - new Uint32Array(ba, _position, 1)[0] = unsigned; + new Uint32Array(ba, _position, 1)[0] = val; _position += 4; } } @@ -309,6 +337,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Write a signed int (32 bits) of binary data at the current position * + * @param {int} val The value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -325,7 +355,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput if (!_sysEndian) { val = (((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24)) >> 0; } - ensureWritableBytes(4); + if (_position + 4 > _len) { + setBufferSize(_position + 4); + } new Int32Array(ba, _position, 1)[0] = val; _position += 4; } @@ -335,30 +367,30 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Writes an IEEE 754 single-precision (32-bit) floating-point number to the * BinaryData at the current position * + * @param {Number} val The value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function writeFloat(value:Number):void + public function writeFloat(val:Number):void { COMPILE::SWF { - return ba.writeFloat(value); + return ba.writeFloat(val); } COMPILE::JS { - var view:Float32Array; - - ensureWritableBytes(4); + if (_position + 4 > _len) { + setBufferSize(_position + 4); + } if(_sysEndian) { - view = new Float32Array(ba, _position, 1); - view[0] = value; + new Float32Array(ba, _position, 1)[0] = val; } else { - var dv:DataView = new DataView(ba); - dv.setFloat32(_position,value,_endian == Endian.LITTLE_ENDIAN); + new DataView(ba).setFloat32(_position,val,_endian == Endian.LITTLE_ENDIAN); } _position += 4; } @@ -367,31 +399,26 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Writes an IEEE 754 double-precision (64-bit) floating-point number to the * BinaryData at the current position * + * @param {Number} val The value to write into the BinaryData at the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function writeDouble(value:Number):void + public function writeDouble(val:Number):void { COMPILE::SWF { - return ba.writeDouble(value); + return ba.writeDouble(val); } COMPILE::JS { - var view:Float64Array; - - ensureWritableBytes(8); - - if(_sysEndian) - { - view = new Float64Array(ba, _position, 1); - view[0] = value; + if (_position + 8 > _len) { + setBufferSize(_position + 8); } + if(_sysEndian) + new Float64Array(ba, _position, 1)[0] = val; else - { - var dv:DataView = new DataView(ba); - dv.setFloat64(_position,value,_endian == Endian.LITTLE_ENDIAN); - } + new DataView(ba).setFloat64(_position,val,_endian == Endian.LITTLE_ENDIAN); _position += 8; } } @@ -399,6 +426,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Reads a Boolean value (as a single byte) at the current position. * returns true if the byte was non-zero, false otherwise * + * @return {Boolean} The boolean value read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -420,6 +449,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Read a signed byte of binary data at the current position * + * @return {int} An int value in the range -128 to 127, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -441,6 +472,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Read an unsigned byte of binary data at the current position * + * @return {uint} An uint value in the range 0 to 255, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -463,8 +496,12 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Reads the number of data bytes, specified by the length parameter, from the BinaryData. * The bytes are read into the BinaryData object specified by the destination parameter, * and the bytes are written into the destination BinaryData starting at the position specified by offset. - * If length is omitted or is zero, all bytes are read following offset to the end of this BinaryData. - * If offset is also omitted, it defaults to zero. + * If length is omitted or is zero, all bytes are read following the current position to the end + * of this BinaryData. If offset is also omitted, it defaults to zero. + * + * @param {BinaryData} destination The destination BinaryData to write bytes into from the current position + * @param {uint} offset The optional offset value of the starting bytes to write inside destination + * @param {uint} length The optional length value of the bytes to read * * @langversion 3.0 * @playerversion Flash 10.2 @@ -499,13 +536,16 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Read a byte of binary data at the specified index. Does not change the position property. + * If an index is out of range (beyond the current length) this will return zero. + * + * @return {uint} A byte value in the range 0-255 from the index * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public function readByteAt(idx:uint):int + public function readByteAt(idx:uint):uint { COMPILE::SWF { @@ -513,7 +553,7 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } COMPILE::JS { - return getTypedArray()[idx]; + return getTypedArray()[idx] >> 0; } } @@ -557,6 +597,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Read a short int of binary data at the current position * + * @return {int} An int value in the range -32768 to 32767, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -581,7 +623,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } /** - * Read an unsigned int of binary data at the current position + * Read an unsigned int (32bit) of binary data at the current position + * + * @return {uint} A uint value, read from the current position * * @langversion 3.0 * @playerversion Flash 10.2 @@ -608,6 +652,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Read an unsigned short (16bit) of binary data at the current position * + * @return {uint} A uint value in the range 0 to 65535, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -631,7 +677,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } /** - * Read a signed int of binary data at the current position + * Read a signed int (32bit) of binary data at the current position + * + * @return {int} An int value, read from the current position * * @langversion 3.0 * @playerversion Flash 10.2 @@ -658,6 +706,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Reads an IEEE 754 single-precision (32-bit) floating-point number from the BinaryData. * + * @return {Number} A Number value, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -669,18 +719,13 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput return ba.readFloat(); } COMPILE::JS { - var view:Float32Array; - + var ret :Number; if(_sysEndian) { - view = new Float32Array(ba, _position, 1); - _position += 4; - return view[0]; - } - var dv:DataView = new DataView(ba); - var i:Number = dv.getFloat32(_position,_endian == Endian.LITTLE_ENDIAN); + ret = new Float32Array(ba, _position, 1)[0]; + } else ret = new DataView(ba).getFloat32(_position,_endian == Endian.LITTLE_ENDIAN); _position += 4; - return i; + return ret; } } @@ -688,6 +733,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Reads an IEEE 754 double-precision (64-bit) floating-point number from the BinaryData. * + * @return {Number} A Number value, read from the current position + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -699,25 +746,29 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput return ba.readDouble(); } COMPILE::JS { - var view:Float64Array; - + var ret : Number; if(_sysEndian) - { - view = new Float64Array(ba, _position, 1); - _position += 8; - return view[0]; - } - var dv:DataView = new DataView(ba); - var i:Number = dv.getFloat64(_position,_endian == Endian.LITTLE_ENDIAN); + ret = new Float64Array(ba, _position, 1)[0]; + else ret = new DataView(ba).getFloat64(_position,_endian == Endian.LITTLE_ENDIAN); _position += 8; - return i; + return ret; } } COMPILE::JS private var _len:uint; - + /** + * The length of this BinaryData, in bytes. + * If the length is set to a value that is larger than the current length, the right side + * of the BinaryData is filled with zeros. + * If the length is set to a value that is smaller than the current length, the BinaryData is truncated. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.7.0 + */ public function get length():int { COMPILE::SWF @@ -762,7 +813,7 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } } /** - * The total number of bytes remaining to be read. + * The total number of bytes available to read from the current position. * * @langversion 3.0 * @playerversion Flash 10.2 @@ -777,7 +828,7 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } COMPILE::JS { - return _len - _position; + return _position < _len ? _len - _position : 0; } } @@ -786,6 +837,9 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * Moves, or returns the current position, in bytes, of the pointer into the BinaryData object. * This is the point at which the next call to a read method starts reading or a write method starts writing. * + * Setting the position beyond the end of the current length value is possible and will increase the length + * during write operations, but will throw an error during read operations. + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -824,7 +878,8 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput * browsers have a way to auto-resize a binary * data as you write data to the binary data buffer * and resizing in large chunks is generally more - * efficient anyway. + * efficient anyway. Preallocating bytes to write into + * is also more efficient on the swf target. * * @param extra The number of additional bytes. * @@ -846,17 +901,13 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } } - COMPILE::JS - protected function ensureWritableBytes(len:uint):void{ - if (_position + len > _len) { - setBufferSize( _position + len ); - } - } - /** - * Reads a UTF-8 string from the byte stream. + * Reads a UTF-8 string from the BinaryData. * The string is assumed to be prefixed with an unsigned short indicating the length in bytes. + * The position is advanced to the first byte following the string's bytes. + * + * @return {String} The utf-8 decoded string * * @langversion 3.0 * @playerversion Flash 10.2 @@ -878,9 +929,11 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput } /** - * Reads a sequence of UTF-8 bytes specified by the length parameter from the byte stream and returns a string. + * Reads a sequence of UTF-8 bytes specified by the length parameter + * from the BinaryData and returns a string. + * The position is advanced to the first byte following the string's bytes. * - * @param An unsigned short indicating the length of the UTF-8 bytes. + * @param {uint} length An unsigned short indicating the length of the UTF-8 bytes. * * @langversion 3.0 * @playerversion Flash 10.2 @@ -949,36 +1002,40 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput /** * Writes a UTF-8 string to the byte stream. - * The length of the UTF-8 string in bytes is written first, as a 16-bit integer, + * The length of the UTF-8 string in bytes is written first, as a 16-bit unsigned integer, * followed by the bytes representing the characters of the string. * If the byte length of the string is larger than 65535 this will throw a RangeError + * The position is advanced to the first byte following the string's bytes. * - * @param The string value to be written. + * @param {String} str The string value to be written. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.7.0 */ - public function writeUTF(value:String):void + public function writeUTF(str:String):void { COMPILE::SWF { - ba.writeUTF(value); + ba.writeUTF(str); } COMPILE::JS { - var utcBytes:Uint8Array = getUTFBytes(value , true); + var utcBytes:Uint8Array = getUTFBytes(str , true); _position = mergeInToArrayBuffer (_position,utcBytes); } } /** - * Writes a UTF-8 string to the byte stream. Similar to the writeUTF() method, - * but writeUTFBytes() does not prefix the string with a 16-bit length word. + * Writes a UTF-8 string to the BinaryData. Similar to the writeUTF() method, + * but writeUTFBytes() does not prefix the string with a 16-bit length word, and + * therefore also permits strings longer than 65535 bytes (note: byte length will not + * necessarily be the same as string length because some characters can be + * multibyte characters). * - * @param The string value to be written. + * @param {String} str The string value to be written. * * @langversion 3.0 * @playerversion Flash 10.2 http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/febae6a6/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Endian.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Endian.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Endian.as index 5d7a595..53a0bf2 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Endian.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Endian.as @@ -54,6 +54,9 @@ package org.apache.flex.utils * In swf targets this is always BIG_ENDIAN. When targeting * javascript it may differ depending on the target environment, * but is Endian.LITTLE_ENDIAN for most machines/browsers. + * In theory, the native support classes for javascript should + * have better performance when working with binary data + * for integers and numbers represented with this endianness. * * * @langversion 3.0 @@ -72,16 +75,13 @@ package org.apache.flex.utils COMPILE::JS - private static function _detectSystemEndian():String{ - delete Endian["_detectSystemEndian"]; - var tester:Uint8Array = new Uint8Array([102,108,101,120]); - var checker:Uint32Array = new Uint32Array(tester.buffer); - var check:uint = checker[0]; - return (check == 1718379896) ? BIG_ENDIAN : LITTLE_ENDIAN ; - } - - COMPILE::JS - private static var _sysEndian:String = _detectSystemEndian(); + private static var _sysEndian:String = + function():String { + var tester:Uint8Array = new Uint8Array([102,108,101,120]); + var checker:Uint32Array = new Uint32Array(tester.buffer); + var check:uint = checker[0]; + return (check == 1718379896) ? BIG_ENDIAN : LITTLE_ENDIAN ; + }(); } } \ No newline at end of file