2024-12-11 09:53:02 +00:00
|
|
|
export interface SymbolPrimordials {
|
|
|
|
makeSymbol(name: string): symbol;
|
|
|
|
getSymbol(name: string): symbol;
|
|
|
|
getSymbolKey(symbol: symbol): string | undefined;
|
|
|
|
getSymbolDescription(symbol: symbol): string;
|
|
|
|
}
|
|
|
|
export interface NumberPrimordials {
|
2024-12-28 11:16:54 +00:00
|
|
|
NaN: number;
|
|
|
|
Infinity: number;
|
|
|
|
PI: number;
|
|
|
|
E: number;
|
|
|
|
|
2024-12-11 09:53:02 +00:00
|
|
|
parseInt(raw: string | number, radix?: number): number;
|
|
|
|
parseFloat(raw: string | number): number;
|
|
|
|
isNaN(num: number): boolean;
|
2024-12-25 00:48:04 +00:00
|
|
|
|
|
|
|
pow(a: number, b: number): number;
|
2024-12-28 11:16:54 +00:00
|
|
|
log(val: number): number;
|
2024-12-11 09:53:02 +00:00
|
|
|
}
|
|
|
|
export interface StringPrimordials {
|
|
|
|
stringBuild(parts: string[]): string;
|
|
|
|
fromCharCode(char: number): string;
|
|
|
|
fromCodePoint(char: number): string;
|
2024-12-13 00:29:41 +00:00
|
|
|
toCharCode(char: string): number;
|
|
|
|
toCodePoint(char: string, i: number): number;
|
|
|
|
indexOf(str: string, search: string, start: number, reverse?: boolean): number;
|
|
|
|
substring(str: string, start: number, end: number): string;
|
|
|
|
lower(str: string): string;
|
|
|
|
upper(str: string): string;
|
2024-12-11 09:53:02 +00:00
|
|
|
}
|
|
|
|
export interface ObjectPrimordials {
|
2024-12-13 00:29:41 +00:00
|
|
|
defineProperty(obj: object, key: string | number | symbol, conf: { g?: Function, s?: Function, e?: boolean, c?: boolean }): boolean;
|
|
|
|
defineField(obj: object, key: string | number | symbol, conf: { v?: any, e?: boolean, c?: boolean, w?: boolean }): boolean;
|
|
|
|
getOwnMember(obj: object, key: any): PropertyDescriptor | undefined;
|
2024-12-11 09:53:02 +00:00
|
|
|
getOwnMembers(obj: object, onlyEnumerable: boolean): string[];
|
|
|
|
getOwnSymbolMembers(obj: object, onlyEnumerable: boolean): symbol[];
|
|
|
|
getPrototype(obj: object): object | undefined;
|
|
|
|
setPrototype(obj: object, proto?: object): object;
|
2024-12-13 00:29:41 +00:00
|
|
|
preventExt(obj: object): void;
|
|
|
|
seal(obj: object): void;
|
|
|
|
freeze(obj: object): void;
|
|
|
|
|
2024-12-28 11:16:54 +00:00
|
|
|
isArray(obj: any): obj is any[];
|
|
|
|
subarray(arr: any[], start: number, end: number): any[];
|
|
|
|
|
2024-12-13 00:29:41 +00:00
|
|
|
memcpy(src: any[], dst: any[], srcI: number, dstI: number, n: number): void;
|
2024-12-25 00:48:04 +00:00
|
|
|
sort(arr: any[], cb: Function): any[];
|
2024-12-11 09:53:02 +00:00
|
|
|
}
|
|
|
|
export interface FunctionPrimordials {
|
|
|
|
invokeType(args: IArguments, self: any): "new" | "call";
|
|
|
|
invokeTypeInfer(): "new" | "call";
|
|
|
|
target(): Function | null | undefined;
|
|
|
|
setConstructable(func: Function, flag: boolean): void;
|
|
|
|
setCallable(func: Function, flag: boolean): void;
|
2024-12-13 00:29:41 +00:00
|
|
|
invoke(func: Function, self: any, args: any[]): any;
|
|
|
|
construct(func: Function, self: any, args: any[]): any;
|
2024-12-11 09:53:02 +00:00
|
|
|
}
|
|
|
|
export interface JSONPrimordials {
|
|
|
|
parse(data: string): any;
|
|
|
|
stringify(data: any): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface Primordials {
|
|
|
|
symbol: SymbolPrimordials;
|
|
|
|
number: NumberPrimordials;
|
|
|
|
string: StringPrimordials;
|
|
|
|
object: ObjectPrimordials;
|
|
|
|
function: FunctionPrimordials;
|
|
|
|
json: JSONPrimordials;
|
2024-12-13 00:29:41 +00:00
|
|
|
map: new (weak?: boolean) => {
|
2024-12-11 09:53:02 +00:00
|
|
|
get(key: any): any;
|
|
|
|
has(key: any): boolean;
|
|
|
|
set(key: any, val: any): void;
|
|
|
|
delete(key: any): void;
|
|
|
|
keys(): any[];
|
2024-12-13 00:29:41 +00:00
|
|
|
clear(): void;
|
2024-12-25 00:48:04 +00:00
|
|
|
size(): number;
|
2024-12-11 09:53:02 +00:00
|
|
|
};
|
2024-12-13 00:29:41 +00:00
|
|
|
|
2024-12-25 00:48:04 +00:00
|
|
|
regex: new (source: string, multiline?: boolean, noCase?: boolean, dotall?: boolean, unicode?: boolean, unicodeClass?: boolean) => {
|
2024-12-13 00:29:41 +00:00
|
|
|
exec(target: string, offset: number, indices: boolean): { matches: RegExpMatchArray, end: number } | null;
|
|
|
|
groupCount(): number;
|
2024-12-11 09:53:02 +00:00
|
|
|
};
|
|
|
|
compile(src: string): Function;
|
|
|
|
setGlobalPrototypes(prototype: Record<string, any>): void;
|
2024-12-13 00:29:41 +00:00
|
|
|
now(): number;
|
2024-12-27 17:17:07 +00:00
|
|
|
next(func: () => void): void;
|
|
|
|
schedule(func: () => void, delay: number): () => void;
|
2024-12-11 09:53:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
globalThis.undefined = void 0;
|
|
|
|
export const target = (globalThis as any).target;
|
|
|
|
export const primordials: Primordials = (globalThis as any).primordials;
|
|
|
|
|
|
|
|
export const {
|
|
|
|
symbol,
|
|
|
|
number,
|
|
|
|
string,
|
|
|
|
object,
|
|
|
|
function: func,
|
|
|
|
json,
|
|
|
|
map,
|
|
|
|
regex,
|
|
|
|
setGlobalPrototypes,
|
|
|
|
compile,
|
2024-12-13 00:29:41 +00:00
|
|
|
now,
|
2024-12-27 17:17:07 +00:00
|
|
|
next,
|
|
|
|
schedule,
|
2024-12-11 09:53:02 +00:00
|
|
|
} = primordials;
|
2024-12-25 00:48:04 +00:00
|
|
|
|
|
|
|
export type regex = InstanceType<typeof regex>;
|