diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
commit | 3983dd2428137211f84f299f9ce8690c22f50afd (patch) | |
tree | 3a2dc53b365e6f377fc82a3514150d1297fe549c /cmd/mist/assets/ext/string.js | |
parent | 7daa8c2f6eb25511c6a54ad420709af911fc6748 (diff) | |
parent | 0a9dc1536c5d776844d6947a0090ff7e1a7c6ab4 (diff) | |
download | go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar.gz go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar.bz2 go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar.lz go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar.xz go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.tar.zst go-tangerine-63766f5809b5f59c77e93bf02278c7d1c20f781e.zip |
Merge branch 'release/v0.7.10'vv0.7.10
Diffstat (limited to 'cmd/mist/assets/ext/string.js')
-rw-r--r-- | cmd/mist/assets/ext/string.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/cmd/mist/assets/ext/string.js b/cmd/mist/assets/ext/string.js new file mode 100644 index 000000000..e8dbd14d4 --- /dev/null +++ b/cmd/mist/assets/ext/string.js @@ -0,0 +1,75 @@ +// Copyright (c) 2013-2014, Jeffrey Wilcke. All rights reserved. +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +// MA 02110-1301 USA + +String.prototype.pad = function(l, r) { + if (r === undefined) { + r = l + if (!(this.substr(0, 2) == "0x" || /^\d+$/.test(this))) + l = 0 + } + var ret = this.bin(); + while (ret.length < l) + ret = "\0" + ret + while (ret.length < r) + ret = ret + "\0" + return ret; +} + +String.prototype.unpad = function() { + var i = this.length; + while (i && this[i - 1] == "\0") + --i + return this.substr(0, i) +} + +String.prototype.bin = function() { + if (this.substr(0, 2) == "0x") { + bytes = [] + var i = 2; + + // Check if it's odd - pad with a zero if so. + if (this.length % 2) + bytes.push(parseInt(this.substr(i++, 1), 16)) + + for (; i < this.length - 1; i += 2) + bytes.push(parseInt(this.substr(i, 2), 16)); + + return String.fromCharCode.apply(String, bytes); + } else if (/^\d+$/.test(this)) + return bigInt(this.substr(0)).toHex().bin() + + // Otherwise we'll return the "String" object instead of an actual string + return this.substr(0, this.length) +} + +String.prototype.unbin = function() { + var i, l, o = ''; + for(i = 0, l = this.length; i < l; i++) { + var n = this.charCodeAt(i).toString(16); + o += n.length < 2 ? '0' + n : n; + } + + return "0x" + o; +} + +String.prototype.dec = function() { + return bigInt(this.substr(0)).toString() +} + +String.prototype.hex = function() { + return bigInt(this.substr(0)).toHex() +} |