summaryrefslogtreecommitdiff
path: root/js/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/utils.js')
-rw-r--r--js/utils.js156
1 files changed, 78 insertions, 78 deletions
diff --git a/js/utils.js b/js/utils.js
index 2b9931e..361e71d 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -1,78 +1,78 @@
-//
-// Utility functions.
-//
-// Copyright (c) 2016 Samuel Groß
-//
-
-// Return the hexadecimal representation of the given byte.
-function hex(b) {
- return ('0' + b.toString(16)).substr(-2);
-}
-
-// Return the hexadecimal representation of the given byte array.
-function hexlify(bytes) {
- var res = [];
- for (var i = 0; i < bytes.length; i++)
- res.push(hex(bytes[i]));
-
- return res.join('');
-}
-
-// Return the binary data represented by the given hexdecimal string.
-function unhexlify(hexstr) {
- if (hexstr.length % 2 == 1)
- throw new TypeError("Invalid hex string");
-
- var bytes = new Uint8Array(hexstr.length / 2);
- for (var i = 0; i < hexstr.length; i += 2)
- bytes[i/2] = parseInt(hexstr.substr(i, 2), 16);
-
- return bytes;
-}
-
-function hexdump(data) {
- if (typeof data.BYTES_PER_ELEMENT !== 'undefined')
- data = Array.from(data);
-
- var lines = [];
- for (var i = 0; i < data.length; i += 16) {
- var chunk = data.slice(i, i+16);
- var parts = chunk.map(hex);
- if (parts.length > 8)
- parts.splice(8, 0, ' ');
- lines.push(parts.join(' '));
- }
-
- return lines.join('\n');
-}
-
-// Simplified version of the similarly named python module.
-var Struct = (function() {
- // Allocate these once to avoid unecessary heap allocations during pack/unpack operations.
- var buffer = new ArrayBuffer(8);
- var byteView = new Uint8Array(buffer);
- var uint32View = new Uint32Array(buffer);
- var float64View = new Float64Array(buffer);
-
- return {
- pack: function(type, value) {
- var view = type; // See below
- view[0] = value;
- return new Uint8Array(buffer, 0, type.BYTES_PER_ELEMENT);
- },
-
- unpack: function(type, bytes) {
- if (bytes.length !== type.BYTES_PER_ELEMENT)
- throw Error("Invalid bytearray");
-
- var view = type; // See below
- byteView.set(bytes);
- return view[0];
- },
-
- // Available types.
- int8: byteView,
- int32: uint32View,
- float64: float64View
- };
-})();
+//
+// Utility functions.
+//
+// Copyright (c) 2016 Samuel Groß
+//
+
+// Return the hexadecimal representation of the given byte.
+function hex(b) {
+ return ('0' + b.toString(16)).substr(-2);
+}
+
+// Return the hexadecimal representation of the given byte array.
+function hexlify(bytes) {
+ var res = [];
+ for (var i = 0; i < bytes.length; i++)
+ res.push(hex(bytes[i]));
+
+ return res.join('');
+}
+
+// Return the binary data represented by the given hexdecimal string.
+function unhexlify(hexstr) {
+ if (hexstr.length % 2 == 1)
+ throw new TypeError("Invalid hex string");
+
+ var bytes = new Uint8Array(hexstr.length / 2);
+ for (var i = 0; i < hexstr.length; i += 2)
+ bytes[i/2] = parseInt(hexstr.substr(i, 2), 16);
+
+ return bytes;
+}
+
+function hexdump(data) {
+ if (typeof data.BYTES_PER_ELEMENT !== 'undefined')
+ data = Array.from(data);
+
+ var lines = [];
+ for (var i = 0; i < data.length; i += 16) {
+ var chunk = data.slice(i, i+16);
+ var parts = chunk.map(hex);
+ if (parts.length > 8)
+ parts.splice(8, 0, ' ');
+ lines.push(parts.join(' '));
+ }
+
+ return lines.join('\n');
+}
+
+// Simplified version of the similarly named python module.
+var Struct = (function() {
+ // Allocate these once to avoid unecessary heap allocations during pack/unpack operations.
+ var buffer = new ArrayBuffer(8);
+ var byteView = new Uint8Array(buffer);
+ var uint32View = new Uint32Array(buffer);
+ var float64View = new Float64Array(buffer);
+
+ return {
+ pack: function(type, value) {
+ var view = type; // See below
+ view[0] = value;
+ return new Uint8Array(buffer, 0, type.BYTES_PER_ELEMENT);
+ },
+
+ unpack: function(type, bytes) {
+ if (bytes.length !== type.BYTES_PER_ELEMENT)
+ throw Error("Invalid bytearray");
+
+ var view = type; // See below
+ byteView.set(bytes);
+ return view[0];
+ },
+
+ // Available types.
+ int8: byteView,
+ int32: uint32View,
+ float64: float64View
+ };
+})();