From 3cc801ffc38d3aaec0abbe0effd0767a149a0ae8 Mon Sep 17 00:00:00 2001 From: kerug Date: Sun, 18 May 2014 17:49:46 +0900 Subject: [PATCH 1/2] Added definition for Long.js --- long/long-tests.ts | 68 +++++++++++++++++++++++++++++++++++++++ long/long.d.ts | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 long/long-tests.ts create mode 100644 long/long.d.ts diff --git a/long/long-tests.ts b/long/long-tests.ts new file mode 100644 index 000000000..35b0d1eea --- /dev/null +++ b/long/long-tests.ts @@ -0,0 +1,68 @@ +/// + +// --- commonjs --- +import Long = require("long"); +// --- browser --- +//var Long = dcodeIO.Long; + +var val:Long; +var n:number; +var b:boolean; +var s:string; + +val = new (Long)(0xFFFFFFFF, 0x7FFFFFFF); + +val = Long.from28Bits(0xFFFFFFF, 0xFFFFFFF, 0xFF); + +val = Long.fromInt(-1, true); +n = val.low; +n = val.high; +b = val.unsigned; +s = val.toString(); + +val = val.add(val); +val = val.and(val); +val = val.clone(); +n = val.compare(val); +val = val.div(val); +b = val.equals(val); +n = val.getHighBits(); +n = val.getHighBitsUnsigned(); +n = val.getLowBits(); +n = val.getLowBitsUnsigned(); +n = val.getNumBitsAbs(); +b = val.greaterThan(val); +b = val.greaterThanOrEqual(val); +b = val.isEven(); +b = val.isNegative(); +b = val.isOdd(); +b = val.isZero(); +b = val.lessThan(val); +b = val.lessThanOrEqual(val); +val = val.modulo(val); +val = val.multiply(val); +val = val.negate(); +val = val.not(); +b = val.notEquals(val); +val = val.or(val); +val = val.shiftLeft(2); +val = val.shiftRight(1); +val = val.shiftRightUnsigned(1); +val = val.subtract(val); +n = val.toInt(); +n = val.toNumber(); +val = val.toSigned(); +val = val.toUnsigned(); +val = val.xor(val); + +val = Long.MAX_SIGNED_VALUE; +val = Long.MAX_UNSIGNED_VALUE; +val = Long.MAX_VALUE; +val = Long.MIN_SIGNED_VALUE; +val = Long.MIN_UNSIGNED_VALUE; +val = Long.MIN_VALUE; +val = Long.NEG_ONE; +val = Long.ONE; +val = Long.ZERO; + + diff --git a/long/long.d.ts b/long/long.d.ts new file mode 100644 index 000000000..70de25c14 --- /dev/null +++ b/long/long.d.ts @@ -0,0 +1,80 @@ +// Type definitions for Long.js 1.1.2 +// Project: https://github.com/dcodeIO/Long.js +// Definitions by: Toshihide Hara +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface LongStatic { + MAX_SIGNED_VALUE:Long; + MAX_UNSIGNED_VALUE:Long; + MAX_VALUE:Long; + MIN_SIGNED_VALUE:Long; + MIN_UNSIGNED_VALUE:Long; + MIN_VALUE:Long; + NEG_ONE:Long; + ONE:Long; + ZERO:Long; + + from28Bits(part0:number, part1:number, part2:number, unsigned?:boolean):Long; + fromBits(lowBits:number, highBits:number, unsigned?:boolean):Long; + fromInt(value:number, unsigned?:boolean):Long; + fromNumber(value:number, unsigned?:boolean):Long; + fromString(str:string, unsigned?:boolean, radix?:number):Long; + fromString(str:string, unsigned?:number, radix?:number):Long; + fromString(str:string, unsigned?:any, radix?:number):Long; +} + +interface Long { + new(low:number, high:number, unsigned?:boolean):Long; + + high:number; + low:number; + unsigned:boolean; + + add(other:Long):Long; + and(other:Long):Long; + clone():Long; + compare(other:Long):number; + div(other:Long):Long; + equals(other:Long):boolean; + getHighBits():number; + getHighBitsUnsigned():number; + getLowBits():number; + getLowBitsUnsigned():number; + getNumBitsAbs():number; + greaterThan(other:Long):boolean; + greaterThanOrEqual(other:Long):boolean; + isEven():boolean; + isNegative():boolean; + isOdd():boolean; + isZero():boolean; + lessThan(other:Long):boolean; + lessThanOrEqual(other:Long):boolean; + modulo(other:Long):Long; + multiply(other:Long):Long; + negate():Long; + not():Long; + notEquals(other:Long):boolean; + or(other:Long):Long; + shiftLeft(numBits:number):Long; + shiftRight(numBits:number):Long; + shiftRightUnsigned(numBits:number):Long; + subtract(other:Long):Long; + toInt():number; + toNumber():number; + toSigned():Long; + toString(radix?:number):string; + toUnsigned():Long; + xor(other:Long):Long; +} + +// for browser +declare module dcodeIO { + export var Long:LongStatic; +} + +// for node, commonjs +declare var Long:LongStatic; + +declare module "long" { +export = Long; +} From b0b775f9370cce77df6d904f0dec115050854d85 Mon Sep 17 00:00:00 2001 From: kerug Date: Tue, 20 May 2014 21:41:52 +0900 Subject: [PATCH 2/2] Fix constructor --- CONTRIBUTORS.md | 1 + long/long-tests.ts | 2 +- long/long.d.ts | 10 +++++----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index f39e1f53d..c52db6c96 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -202,6 +202,7 @@ All definitions files include a header with the author and editors, so at some p * [localForage](https://github.com/mozilla/localForage) (by [david pichsenmeister](https://github.com/3x14159265)) * [Lodash](http://lodash.com/) (by [Brian Zengel](https://github.com/bczengel)) * [Logg](https://github.com/dpup/node-logg) (by [Bret Little](https://github.com/blittle)) +* [Long.js](https://github.com/dcodeIO/Long.js) (by [Toshihide Hara](https://github.com/kerug)) * [lz-string](https://github.com/pieroxy/lz-string) (by [Roman Nikitin](https://github.com/M0ns1gn0r)) * [Marked](https://github.com/chjj/marked) (by [William Orr](https://github.com/worr)) * [mCustomScrollbar](https://github.com/malihu/malihu-custom-scrollbar-plugin) (by [Sarah Williams](https://github.com/flurg)) diff --git a/long/long-tests.ts b/long/long-tests.ts index 35b0d1eea..6679a820a 100644 --- a/long/long-tests.ts +++ b/long/long-tests.ts @@ -10,7 +10,7 @@ var n:number; var b:boolean; var s:string; -val = new (Long)(0xFFFFFFFF, 0x7FFFFFFF); +val = new Long(0xFFFFFFFF, 0x7FFFFFFF); val = Long.from28Bits(0xFFFFFFF, 0xFFFFFFF, 0xFF); diff --git a/long/long.d.ts b/long/long.d.ts index 70de25c14..98200e0a8 100644 --- a/long/long.d.ts +++ b/long/long.d.ts @@ -4,6 +4,8 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped interface LongStatic { + new(low:number, high:number, unsigned?:boolean):Long; + MAX_SIGNED_VALUE:Long; MAX_UNSIGNED_VALUE:Long; MAX_VALUE:Long; @@ -24,8 +26,6 @@ interface LongStatic { } interface Long { - new(low:number, high:number, unsigned?:boolean):Long; - high:number; low:number; unsigned:boolean; @@ -73,8 +73,8 @@ declare module dcodeIO { } // for node, commonjs -declare var Long:LongStatic; - declare module "long" { -export = Long; + export = Long; } + +declare var Long:LongStatic;