reign
Version:
A persistent, typed-objects implementation.
204 lines (184 loc) • 8.31 kB
JavaScript
/* @flow */
declare type uint8 = number;
declare type uint16 = number;
declare type uint32 = number;
declare type int8 = number;
declare type int16 = number;
declare type int32 = number;
declare type float32 = number;
declare type float64 = number;
declare type double = number;
declare class Function {
static (): any;
apply: Function$Prototype$Apply; // (thisArg: any, argArray?: any) => any
bind: Function$Prototype$Bind; // (thisArg: any, ...argArray: Array<any>) => any;
call: Function$Prototype$Call; // (thisArg: any, ...argArray: Array<any>) => any
arguments: any;
caller: Function | null;
length: number;
name: string;
}
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
declare class Symbol {
static (value?:any): symbol;
static for(key:string): symbol;
static keyFor(symbol:symbol): string;
toString(): string;
valueOf(): symbol;
// Well-known symbols
static iterator: symbol;
static match: symbol;
static replace: symbol;
static search: symbol;
static split: symbol;
static hasInstance: symbol;
static isConcatSpreadable: symbol;
static unscopables: symbol;
static species: symbol;
static toPrimitive: symbol;
static toStringTag: symbol;
}
type symbol = Symbol;
declare class ArrayBuffer {
constructor(byteLength: number): void;
byteLength: number;
slice(begin:number, end?:number): ArrayBuffer;
}
declare class ArrayBufferView {
buffer: ArrayBuffer;
byteOffset: number;
byteLength: number;
}
declare class Int8Array extends ArrayBufferView {
// Constructor(unsigned long length),
// Constructor(TypedArray array),
// Constructor(type[] array),
// Constructor(ArrayBuffer buffer, optional unsigned long byteOffset, optional unsigned long length)
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Int8Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Int8Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Int8Array;
}
declare class Uint8Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Uint8Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Uint8Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Uint8Array;
}
declare class Uint8ClampedArray extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Uint8ClampedArray | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Uint8ClampedArray;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Uint8ClampedArray;
}
declare class Int16Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Int16Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Int16Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Int16Array;
}
declare class Uint16Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Uint16Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Uint16Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Uint16Array;
}
declare class Int32Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Int32Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Int32Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Int32Array;
map(visitor: Function): Int32Array;
join(separator?: string): string;
}
declare class Uint32Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Uint32Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Uint32Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Uint32Array;
}
declare class Float32Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Float32Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Float32Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Float32Array;
}
declare class Float64Array extends ArrayBufferView {
constructor(buffer: ArrayBuffer | number | Array<number> | ArrayBufferView, byteOffset?: number, length?: number): void;
[index: number]: number;
BYTES_PER_ELEMENT: number;
length: number;
get(index: number): number;
set(index: number, value: number): void;
set(array: Float64Array | Array<number>, offset?: number): void;
subarray(begin: number, end?: number): Float64Array;
slice(begin: number, end?: number): Array<number>;
fill(value: number, begin?: number, end?: number): Float64Array;
}
declare class DataView extends ArrayBufferView {
constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number): void;
getInt8(byteOffset: number): number;
getUint8(byteOffset: number): number;
getInt16(byteOffset: number, littleEndian?: boolean): number;
getUint16(byteOffset: number, littleEndian?: boolean): number;
getInt32(byteOffset: number, littleEndian?: boolean): number;
getUint32(byteOffset: number, littleEndian?: boolean): number;
getFloat32(byteOffset: number, littleEndian?: boolean): number;
getFloat64(byteOffset: number, littleEndian?: boolean): number;
setInt8(byteOffset: number, value: number): void;
setUint8(byteOffset: number, value: number): void;
setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;
setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;
setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;
setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;
setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;
setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;
}