goscript 0.0.76 → 0.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiler/analysis.go +100 -33
- package/compiler/analysis_test.go +2 -7
- package/compiler/code-writer.go +2 -2
- package/compiler/compiler.go +4 -4
- package/compiler/composite-lit.go +4 -6
- package/compiler/constraint.go +2 -4
- package/compiler/decl.go +34 -0
- package/compiler/expr-call-async.go +4 -0
- package/compiler/expr-call-helpers.go +98 -8
- package/compiler/expr-call-make.go +4 -4
- package/compiler/expr-call.go +3 -0
- package/compiler/expr-type.go +42 -0
- package/compiler/gs_dependencies_test.go +3 -14
- package/compiler/index.ts +20 -5
- package/compiler/protobuf.go +21 -21
- package/compiler/spec-struct.go +195 -30
- package/compiler/spec.go +32 -3
- package/compiler/stmt-assign.go +2 -2
- package/compiler/type-info.go +20 -3
- package/compiler/type-utils.go +2 -4
- package/compiler/type.go +3 -4
- package/dist/compiler/index.js +13 -4
- package/dist/compiler/index.js.map +1 -1
- package/dist/gs/builtin/slice.js +2 -3
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/builtin/type.d.ts +1 -0
- package/dist/gs/builtin/type.js +8 -14
- package/dist/gs/builtin/type.js.map +1 -1
- package/dist/gs/bytes/buffer.gs.d.ts +1 -0
- package/dist/gs/bytes/buffer.gs.js +20 -0
- package/dist/gs/bytes/buffer.gs.js.map +1 -1
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.d.ts +5 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js +10 -0
- package/dist/gs/github.com/aperturerobotics/protobuf-go-lite/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.d.ts +50 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js +221 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.d.ts +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js +2 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.d.ts +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js +2 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.js.map +1 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.d.ts +56 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js +17 -0
- package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.js.map +1 -0
- package/dist/gs/io/fs/format.js +2 -6
- package/dist/gs/io/fs/format.js.map +1 -1
- package/dist/gs/io/fs/glob.js +18 -23
- package/dist/gs/io/fs/glob.js.map +1 -1
- package/dist/gs/path/match.js +9 -22
- package/dist/gs/path/match.js.map +1 -1
- package/dist/gs/reflect/index.d.ts +1 -1
- package/dist/gs/reflect/index.js +1 -1
- package/dist/gs/reflect/index.js.map +1 -1
- package/dist/gs/reflect/type.d.ts +1 -0
- package/dist/gs/reflect/type.js +52 -23
- package/dist/gs/reflect/type.js.map +1 -1
- package/dist/gs/strings/iter.js +1 -1
- package/dist/gs/strings/iter.js.map +1 -1
- package/dist/gs/strings/reader.js +1 -1
- package/dist/gs/strings/reader.js.map +1 -1
- package/dist/gs/strings/replace.js +9 -20
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/time/time.js +2 -2
- package/dist/gs/time/time.js.map +1 -1
- package/go.mod +1 -1
- package/go.sum +2 -2
- package/gs/builtin/slice.ts +2 -2
- package/gs/builtin/type.ts +14 -14
- package/gs/bytes/buffer.gs.ts +21 -1
- package/gs/fmt/fmt.test.ts +1 -1
- package/gs/github.com/aperturerobotics/protobuf-go-lite/index.ts +14 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts +238 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.ts +1 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/meta.json +12 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.ts +1 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/meta.json +8 -0
- package/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.ts +94 -0
- package/gs/io/fs/format.ts +2 -5
- package/gs/io/fs/glob.ts +18 -21
- package/gs/path/match.ts +9 -22
- package/gs/reflect/index.ts +1 -0
- package/gs/reflect/type.ts +62 -25
- package/gs/strings/iter.ts +1 -1
- package/gs/strings/reader.ts +1 -1
- package/gs/strings/replace.ts +13 -18
- package/gs/time/time.ts +2 -2
- package/package.json +18 -15
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// Package browser_runtime implements VmRuntime backed by the browser
|
|
2
|
+
// WebAssembly API. Pure TypeScript -- no syscall/js indirection.
|
|
3
|
+
// Runtime implements VmRuntime using the browser WebAssembly API.
|
|
4
|
+
export class Runtime {
|
|
5
|
+
constructor() { }
|
|
6
|
+
// Compile calls WebAssembly.compile and returns a Module.
|
|
7
|
+
async Compile(_ctx, wasm) {
|
|
8
|
+
const bytes = wasm instanceof Uint8Array ? wasm : new Uint8Array(wasm);
|
|
9
|
+
const compiled = await WebAssembly.compile(bytes.buffer);
|
|
10
|
+
return new Module(compiled);
|
|
11
|
+
}
|
|
12
|
+
// Close is a no-op for the browser runtime.
|
|
13
|
+
async Close(_ctx) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// New creates a new browser-backed VmRuntime.
|
|
18
|
+
export function New() {
|
|
19
|
+
return new Runtime();
|
|
20
|
+
}
|
|
21
|
+
// Module wraps a WebAssembly.Module.
|
|
22
|
+
export class Module {
|
|
23
|
+
wasmModule;
|
|
24
|
+
constructor(wasmModule) {
|
|
25
|
+
this.wasmModule = wasmModule;
|
|
26
|
+
}
|
|
27
|
+
// Instantiate creates an instance with host functions wired as imports.
|
|
28
|
+
async Instantiate(ctx, config) {
|
|
29
|
+
const imports = this.buildImports(ctx, config.HostFunctions);
|
|
30
|
+
const wasmInst = await WebAssembly.instantiate(this.wasmModule, imports);
|
|
31
|
+
const inst = new Instance(wasmInst);
|
|
32
|
+
// Patch the captured instance reference in host function closures.
|
|
33
|
+
if (imports.__instRef) {
|
|
34
|
+
;
|
|
35
|
+
imports.__instRef.current = inst;
|
|
36
|
+
}
|
|
37
|
+
return inst;
|
|
38
|
+
}
|
|
39
|
+
// Close is a no-op.
|
|
40
|
+
async Close(_ctx) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
// buildImports constructs the WebAssembly imports object.
|
|
44
|
+
buildImports(ctx, hostFns) {
|
|
45
|
+
const imports = {};
|
|
46
|
+
if (!hostFns)
|
|
47
|
+
return imports;
|
|
48
|
+
// Shared mutable ref -- patched after instantiation.
|
|
49
|
+
const instRef = { current: null };
|
|
50
|
+
hostFns.forEach((fn, key) => {
|
|
51
|
+
let modName = 'env';
|
|
52
|
+
let funcName = key;
|
|
53
|
+
const dot = key.indexOf('.');
|
|
54
|
+
if (dot !== -1) {
|
|
55
|
+
modName = key.substring(0, dot);
|
|
56
|
+
funcName = key.substring(dot + 1);
|
|
57
|
+
}
|
|
58
|
+
if (!imports[modName])
|
|
59
|
+
imports[modName] = {};
|
|
60
|
+
imports[modName][funcName] = (...args) => {
|
|
61
|
+
const stack = new BigInt64Array(args.length);
|
|
62
|
+
for (let i = 0; i < args.length; i++) {
|
|
63
|
+
stack[i] = BigInt(args[i]);
|
|
64
|
+
}
|
|
65
|
+
const u64Stack = args.map((a) => a >>> 0);
|
|
66
|
+
const err = fn(ctx, instRef.current, u64Stack);
|
|
67
|
+
if (err)
|
|
68
|
+
throw err;
|
|
69
|
+
// WASM i32 return: first stack element.
|
|
70
|
+
if (u64Stack.length > 0)
|
|
71
|
+
return u64Stack[0];
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
imports.__instRef = instRef;
|
|
75
|
+
return imports;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Instance wraps a WebAssembly.Instance.
|
|
79
|
+
export class Instance {
|
|
80
|
+
wasmInstance;
|
|
81
|
+
exports;
|
|
82
|
+
constructor(wasmInstance) {
|
|
83
|
+
this.wasmInstance = wasmInstance;
|
|
84
|
+
this.exports = wasmInstance.exports;
|
|
85
|
+
}
|
|
86
|
+
// Call invokes an exported function by name.
|
|
87
|
+
async Call(_ctx, name, ...args) {
|
|
88
|
+
const fn = this.exports[name];
|
|
89
|
+
if (typeof fn !== 'function')
|
|
90
|
+
return null;
|
|
91
|
+
const result = fn(...args);
|
|
92
|
+
if (result === undefined)
|
|
93
|
+
return null;
|
|
94
|
+
return [result];
|
|
95
|
+
}
|
|
96
|
+
// Memory returns the instance's linear memory.
|
|
97
|
+
Memory() {
|
|
98
|
+
const mem = this.exports.memory;
|
|
99
|
+
if (!(mem instanceof WebAssembly.Memory))
|
|
100
|
+
return null;
|
|
101
|
+
return new BrowserMemory(mem);
|
|
102
|
+
}
|
|
103
|
+
// ExportedFunction returns a callable reference.
|
|
104
|
+
ExportedFunction(name) {
|
|
105
|
+
const fn = this.exports[name];
|
|
106
|
+
if (typeof fn !== 'function')
|
|
107
|
+
return null;
|
|
108
|
+
return new BrowserFunction(fn);
|
|
109
|
+
}
|
|
110
|
+
// ExportedGlobal returns a reference to an exported global.
|
|
111
|
+
ExportedGlobal(name) {
|
|
112
|
+
const g = this.exports[name];
|
|
113
|
+
if (!(g instanceof WebAssembly.Global))
|
|
114
|
+
return null;
|
|
115
|
+
return new BrowserGlobal(g);
|
|
116
|
+
}
|
|
117
|
+
// Close is a no-op.
|
|
118
|
+
async Close(_ctx) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// BrowserFunction wraps a WebAssembly exported function.
|
|
123
|
+
export class BrowserFunction {
|
|
124
|
+
fn;
|
|
125
|
+
constructor(fn) {
|
|
126
|
+
this.fn = fn;
|
|
127
|
+
}
|
|
128
|
+
async Call(_ctx, ...args) {
|
|
129
|
+
const result = this.fn(...args);
|
|
130
|
+
if (result === undefined)
|
|
131
|
+
return null;
|
|
132
|
+
return [result];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// BrowserGlobal wraps a WebAssembly.Global.
|
|
136
|
+
export class BrowserGlobal {
|
|
137
|
+
global;
|
|
138
|
+
constructor(global) {
|
|
139
|
+
this.global = global;
|
|
140
|
+
}
|
|
141
|
+
Get() {
|
|
142
|
+
return this.global.value;
|
|
143
|
+
}
|
|
144
|
+
Set(val) {
|
|
145
|
+
this.global.value = val;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// BrowserMemory wraps WebAssembly.Memory with typed DataView access.
|
|
149
|
+
export class BrowserMemory {
|
|
150
|
+
mem;
|
|
151
|
+
constructor(mem) {
|
|
152
|
+
this.mem = mem;
|
|
153
|
+
}
|
|
154
|
+
get buf() {
|
|
155
|
+
return this.mem.buffer;
|
|
156
|
+
}
|
|
157
|
+
Read(offset, length) {
|
|
158
|
+
if (offset + length > this.buf.byteLength)
|
|
159
|
+
return [new Uint8Array(0), false];
|
|
160
|
+
return [new Uint8Array(this.buf, offset, length), true];
|
|
161
|
+
}
|
|
162
|
+
ReadByteAt(offset) {
|
|
163
|
+
if (offset >= this.buf.byteLength)
|
|
164
|
+
return [0, false];
|
|
165
|
+
return [new Uint8Array(this.buf, offset, 1)[0], true];
|
|
166
|
+
}
|
|
167
|
+
ReadUint32Le(offset) {
|
|
168
|
+
if (offset + 4 > this.buf.byteLength)
|
|
169
|
+
return [0, false];
|
|
170
|
+
return [new DataView(this.buf).getUint32(offset, true), true];
|
|
171
|
+
}
|
|
172
|
+
ReadUint64Le(offset) {
|
|
173
|
+
if (offset + 8 > this.buf.byteLength)
|
|
174
|
+
return [0n, false];
|
|
175
|
+
const dv = new DataView(this.buf);
|
|
176
|
+
const lo = BigInt(dv.getUint32(offset, true));
|
|
177
|
+
const hi = BigInt(dv.getUint32(offset + 4, true));
|
|
178
|
+
return [lo | (hi << 32n), true];
|
|
179
|
+
}
|
|
180
|
+
Write(offset, data) {
|
|
181
|
+
const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
|
|
182
|
+
if (offset + bytes.length > this.buf.byteLength)
|
|
183
|
+
return false;
|
|
184
|
+
new Uint8Array(this.buf, offset, bytes.length).set(bytes);
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
WriteByteAt(offset, val) {
|
|
188
|
+
if (offset >= this.buf.byteLength)
|
|
189
|
+
return false;
|
|
190
|
+
new Uint8Array(this.buf, offset, 1)[0] = val;
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
WriteUint32Le(offset, val) {
|
|
194
|
+
if (offset + 4 > this.buf.byteLength)
|
|
195
|
+
return false;
|
|
196
|
+
new DataView(this.buf).setUint32(offset, val, true);
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
WriteUint64Le(offset, val) {
|
|
200
|
+
if (offset + 8 > this.buf.byteLength)
|
|
201
|
+
return false;
|
|
202
|
+
const v = typeof val === 'bigint' ? val : BigInt(val);
|
|
203
|
+
const dv = new DataView(this.buf);
|
|
204
|
+
dv.setUint32(offset, Number(v & 0xffffffffn), true);
|
|
205
|
+
dv.setUint32(offset + 4, Number((v >> 32n) & 0xffffffffn), true);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
Size() {
|
|
209
|
+
return this.buf.byteLength;
|
|
210
|
+
}
|
|
211
|
+
Grow(pages) {
|
|
212
|
+
try {
|
|
213
|
+
const prev = this.mem.grow(pages);
|
|
214
|
+
return [prev, true];
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return [0, false];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=browser.js.map
|
package/dist/gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './browser.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './runtime.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface VmRuntime {
|
|
2
|
+
Compile(ctx: any, wasm: Uint8Array | number[]): Promise<VmModule>;
|
|
3
|
+
Close(ctx: any): Promise<any>;
|
|
4
|
+
}
|
|
5
|
+
export interface VmModule {
|
|
6
|
+
Instantiate(ctx: any, config: VmModuleConfig): Promise<VmInstance>;
|
|
7
|
+
Close(ctx: any): Promise<any>;
|
|
8
|
+
}
|
|
9
|
+
export interface VmModuleConfig {
|
|
10
|
+
Name: string;
|
|
11
|
+
Args: string[] | null;
|
|
12
|
+
Env: string[] | null;
|
|
13
|
+
Stdin: any;
|
|
14
|
+
Stdout: any;
|
|
15
|
+
Stderr: any;
|
|
16
|
+
HostFunctions: Map<string, HostFunction> | null;
|
|
17
|
+
}
|
|
18
|
+
export type HostFunction = (ctx: any, inst: VmInstance | null, stack: number[]) => any;
|
|
19
|
+
export interface VmInstance {
|
|
20
|
+
Call(ctx: any, name: string, ...args: number[]): Promise<number[] | null>;
|
|
21
|
+
Memory(): VmMemory | null;
|
|
22
|
+
ExportedFunction(name: string): VmFunction | null;
|
|
23
|
+
ExportedGlobal(name: string): VmGlobal | null;
|
|
24
|
+
Close(ctx: any): Promise<any>;
|
|
25
|
+
}
|
|
26
|
+
export interface VmFunction {
|
|
27
|
+
Call(ctx: any, ...args: number[]): Promise<number[] | null>;
|
|
28
|
+
}
|
|
29
|
+
export interface VmGlobal {
|
|
30
|
+
Get(): number;
|
|
31
|
+
Set(val: number): void;
|
|
32
|
+
}
|
|
33
|
+
export interface VmMemory {
|
|
34
|
+
Read(offset: number, length: number): [Uint8Array | number[], boolean];
|
|
35
|
+
ReadByteAt(offset: number): [number, boolean];
|
|
36
|
+
ReadUint32Le(offset: number): [number, boolean];
|
|
37
|
+
ReadUint64Le(offset: number): [bigint | number, boolean];
|
|
38
|
+
Write(offset: number, data: Uint8Array | number[]): boolean;
|
|
39
|
+
WriteByteAt(offset: number, val: number): boolean;
|
|
40
|
+
WriteUint32Le(offset: number, val: number): boolean;
|
|
41
|
+
WriteUint64Le(offset: number, val: bigint | number): boolean;
|
|
42
|
+
Size(): number;
|
|
43
|
+
Grow(pages: number): [number, boolean];
|
|
44
|
+
}
|
|
45
|
+
export declare class ExitError extends Error {
|
|
46
|
+
Code: number;
|
|
47
|
+
constructor(code: number);
|
|
48
|
+
ExitCode(): number;
|
|
49
|
+
}
|
|
50
|
+
export declare function NewExitError(code: number): ExitError;
|
|
51
|
+
export interface Snapshotable {
|
|
52
|
+
Snapshot(): Snapshot;
|
|
53
|
+
}
|
|
54
|
+
export interface Snapshot {
|
|
55
|
+
Restore(returnValues: number[]): void;
|
|
56
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Package vmruntime defines abstract interfaces for WASM execution engines.
|
|
2
|
+
// ExitError represents a clean process exit with a status code.
|
|
3
|
+
export class ExitError extends Error {
|
|
4
|
+
Code;
|
|
5
|
+
constructor(code) {
|
|
6
|
+
super('exit: ' + code);
|
|
7
|
+
this.Code = code;
|
|
8
|
+
}
|
|
9
|
+
ExitCode() {
|
|
10
|
+
return this.Code;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
// NewExitError creates an ExitError with the given code.
|
|
14
|
+
export function NewExitError(code) {
|
|
15
|
+
return new ExitError(code);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../../../gs/github.com/aperturerobotics/wasivm/wazero/kernel/runtime/runtime.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAkE5E,gEAAgE;AAChE,MAAM,OAAO,SAAU,SAAQ,KAAK;IAC3B,IAAI,CAAQ;IAEnB,YAAY,IAAY;QACtB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
package/dist/gs/io/fs/format.js
CHANGED
|
@@ -13,13 +13,9 @@ export function FormatFileInfo(info) {
|
|
|
13
13
|
b.push(fileModeString(info.Mode()));
|
|
14
14
|
b.push(' ');
|
|
15
15
|
let size = info.Size();
|
|
16
|
-
|
|
17
|
-
if (size
|
|
18
|
-
usize = size;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
16
|
+
const usize = size >= 0 ? size : -size;
|
|
17
|
+
if (size < 0) {
|
|
21
18
|
b.push('-');
|
|
22
|
-
usize = -size;
|
|
23
19
|
}
|
|
24
20
|
b.push(usize.toString());
|
|
25
21
|
b.push(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../gs/io/fs/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAsB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAE/C,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,6BAA6B;AAC7B,EAAE;AACF,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,IAAI,CAAC,GAAa,EAAE,CAAA;IACpB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../gs/io/fs/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAsB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAE/C,4EAA4E;AAC5E,oEAAoE;AACpE,yEAAyE;AACzE,6BAA6B;AAC7B,EAAE;AACF,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,IAAI,CAAC,GAAa,EAAE,CAAA;IACpB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,IAAI,IAAI,GAAG,IAAK,CAAC,IAAI,EAAE,CAAA;IACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,gEAAgE;IAChE,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,OAAO,EAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,IAAI,IAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,EAAE;AACF,YAAY;AACZ,aAAa;AACb,MAAM,UAAU,cAAc,CAAC,GAAa;IAC1C,IAAI,IAAI,GAAG,GAAI,CAAC,IAAI,EAAE,CAAA;IACtB,IAAI,CAAC,GAAa,EAAE,CAAA;IAEpB,uDAAuD;IACvD,iCAAiC;IACjC,IAAI,IAAI,GAAG,cAAc,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACtC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEtD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,IAAI,GAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC"}
|
package/dist/gs/io/fs/glob.js
CHANGED
|
@@ -49,7 +49,6 @@ export function Glob(fsys, pattern) {
|
|
|
49
49
|
}
|
|
50
50
|
export function globWithLimit(fsys, pattern, depth) {
|
|
51
51
|
let matches = null;
|
|
52
|
-
let err = null;
|
|
53
52
|
{
|
|
54
53
|
// This limit is added to prevent stack exhaustion issues. See
|
|
55
54
|
// CVE-2022-30630.
|
|
@@ -65,16 +64,15 @@ export function globWithLimit(fsys, pattern, depth) {
|
|
|
65
64
|
}
|
|
66
65
|
// Check pattern is well-formed.
|
|
67
66
|
{
|
|
68
|
-
|
|
69
|
-
if (
|
|
70
|
-
return [null,
|
|
67
|
+
const [, matchErr] = path.Match(pattern, '');
|
|
68
|
+
if (matchErr != null) {
|
|
69
|
+
return [null, matchErr];
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
72
|
if (!hasMeta(pattern)) {
|
|
74
73
|
{
|
|
75
|
-
;
|
|
76
|
-
|
|
77
|
-
if (err != null) {
|
|
74
|
+
const [, statErr] = Stat(fsys, pattern);
|
|
75
|
+
if (statErr != null) {
|
|
78
76
|
return [null, null];
|
|
79
77
|
}
|
|
80
78
|
}
|
|
@@ -89,22 +87,21 @@ export function globWithLimit(fsys, pattern, depth) {
|
|
|
89
87
|
if (dir == pattern) {
|
|
90
88
|
return [null, path.ErrBadPattern];
|
|
91
89
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return [null, err];
|
|
90
|
+
const [dirs, dirErr] = globWithLimit(fsys, dir, depth + 1);
|
|
91
|
+
if (dirErr != null) {
|
|
92
|
+
return [null, dirErr];
|
|
96
93
|
}
|
|
97
|
-
for (let _i = 0; _i < $.len(
|
|
98
|
-
const d =
|
|
94
|
+
for (let _i = 0; _i < $.len(dirs); _i++) {
|
|
95
|
+
const d = dirs[_i];
|
|
99
96
|
{
|
|
100
|
-
;
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
return [matches,
|
|
97
|
+
const [nextMatches, globErr] = glob(fsys, d, file, matches);
|
|
98
|
+
matches = nextMatches;
|
|
99
|
+
if (globErr != null) {
|
|
100
|
+
return [matches, globErr];
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
103
|
}
|
|
107
|
-
return [matches,
|
|
104
|
+
return [matches, null];
|
|
108
105
|
}
|
|
109
106
|
}
|
|
110
107
|
// cleanGlobPath prepares path for glob matching.
|
|
@@ -124,14 +121,12 @@ export function cleanGlobPath(path) {
|
|
|
124
121
|
// If the directory cannot be opened, glob returns the existing matches.
|
|
125
122
|
// New matches are added in lexicographical order.
|
|
126
123
|
export function glob(fs, dir, pattern, matches) {
|
|
127
|
-
let m =
|
|
128
|
-
let e = null;
|
|
124
|
+
let m = matches;
|
|
129
125
|
{
|
|
130
|
-
m = matches;
|
|
131
126
|
let [infos, err] = ReadDir(fs, dir);
|
|
132
127
|
// ignore I/O error
|
|
133
128
|
if (err != null) {
|
|
134
|
-
return [m,
|
|
129
|
+
return [m, null];
|
|
135
130
|
}
|
|
136
131
|
for (let _i = 0; _i < $.len(infos); _i++) {
|
|
137
132
|
const info = infos[_i];
|
|
@@ -146,7 +141,7 @@ export function glob(fs, dir, pattern, matches) {
|
|
|
146
141
|
}
|
|
147
142
|
}
|
|
148
143
|
}
|
|
149
|
-
return [m,
|
|
144
|
+
return [m, null];
|
|
150
145
|
}
|
|
151
146
|
}
|
|
152
147
|
// hasMeta reports whether path contains any of the magic characters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAW/C,CAAC,CAAC,qBAAqB,CACrB,QAAQ,EACR,IAAI,EAAE,mCAAmC;AACzC;IACE;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACtE;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;oBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACrD;aACF;YACD;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;oBAC1B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,EAAE;4BACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;yBAChE;qBACF;iBACF;aACF;SACF;KACF;CACF,CACF,CAAA;AAED,8DAA8D;AAC9D,mEAAmE;AACnE,0EAA0E;AAC1E,gBAAgB;AAChB,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,4BAA4B;AAC5B,EAAE;AACF,iDAAiD;AACjD,gEAAgE;AAChE,wCAAwC;AACxC,MAAM,UAAU,IAAI,CAAC,IAAQ,EAAE,OAAe;IAC5C,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAQ,EACR,OAAe,EACf,KAAa;IAEb,IAAI,OAAO,GAAoB,IAAI,CAAA;IACnC,
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../../gs/io/fs/glob.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/path/match.js
CHANGED
|
@@ -36,13 +36,7 @@ export function Match(pattern, name) {
|
|
|
36
36
|
// Before returning false with no error,
|
|
37
37
|
// check that the remainder of the pattern is syntactically valid.
|
|
38
38
|
Pattern: for (; $.len(pattern) > 0;) {
|
|
39
|
-
|
|
40
|
-
let chunk = '';
|
|
41
|
-
let rest = '';
|
|
42
|
-
let scanResult = scanChunk(pattern);
|
|
43
|
-
star = scanResult[0];
|
|
44
|
-
chunk = scanResult[1];
|
|
45
|
-
rest = scanResult[2];
|
|
39
|
+
const [star, chunk, rest] = scanChunk(pattern);
|
|
46
40
|
pattern = rest;
|
|
47
41
|
// Trailing * matches rest of string unless it has a /.
|
|
48
42
|
if (star && chunk == '') {
|
|
@@ -87,13 +81,7 @@ export function Match(pattern, name) {
|
|
|
87
81
|
// Before returning false with no error,
|
|
88
82
|
// check that the remainder of the pattern is syntactically valid.
|
|
89
83
|
for (; $.len(pattern) > 0;) {
|
|
90
|
-
|
|
91
|
-
let chunk2 = '';
|
|
92
|
-
let rest2 = '';
|
|
93
|
-
let scanResult2 = scanChunk(pattern);
|
|
94
|
-
// star2 = scanResult2[0]
|
|
95
|
-
chunk2 = scanResult2[1];
|
|
96
|
-
rest2 = scanResult2[2];
|
|
84
|
+
const [, chunk2, rest2] = scanChunk(pattern);
|
|
97
85
|
pattern = rest2;
|
|
98
86
|
{
|
|
99
87
|
let [, , err] = matchChunk(chunk2, '');
|
|
@@ -117,7 +105,7 @@ export function scanChunk(pattern) {
|
|
|
117
105
|
star = true;
|
|
118
106
|
}
|
|
119
107
|
let inrange = false;
|
|
120
|
-
let i
|
|
108
|
+
let i;
|
|
121
109
|
// error check handled in matchChunk: bad pattern.
|
|
122
110
|
Scan: for (i = 0; i < $.len(pattern); i++) {
|
|
123
111
|
// error check handled in matchChunk: bad pattern.
|
|
@@ -151,7 +139,7 @@ export function scanChunk(pattern) {
|
|
|
151
139
|
// If so, it returns the remainder of s (after the match).
|
|
152
140
|
// Chunk is all single-character operators: literals, char classes, and ?.
|
|
153
141
|
export function matchChunk(chunk, s) {
|
|
154
|
-
let err
|
|
142
|
+
let err;
|
|
155
143
|
{
|
|
156
144
|
// failed records whether the match has failed.
|
|
157
145
|
// After the match fails, the loop continues on processing chunk,
|
|
@@ -171,10 +159,9 @@ export function matchChunk(chunk, s) {
|
|
|
171
159
|
case 91: {
|
|
172
160
|
let r = 0;
|
|
173
161
|
if (!failed) {
|
|
174
|
-
|
|
175
|
-
let decoded = utf8.DecodeRuneInString(s);
|
|
162
|
+
const decoded = utf8.DecodeRuneInString(s);
|
|
176
163
|
r = decoded[0];
|
|
177
|
-
n = decoded[1];
|
|
164
|
+
const n = decoded[1];
|
|
178
165
|
s = $.sliceString(s, n, undefined);
|
|
179
166
|
}
|
|
180
167
|
chunk = $.sliceString(chunk, 1, undefined);
|
|
@@ -192,10 +179,10 @@ export function matchChunk(chunk, s) {
|
|
|
192
179
|
chunk = $.sliceString(chunk, 1, undefined);
|
|
193
180
|
break;
|
|
194
181
|
}
|
|
195
|
-
let lo
|
|
196
|
-
let hi
|
|
182
|
+
let lo;
|
|
183
|
+
let hi;
|
|
197
184
|
{
|
|
198
|
-
|
|
185
|
+
const escResult = getEsc(chunk);
|
|
199
186
|
lo = escResult[0];
|
|
200
187
|
chunk = escResult[1];
|
|
201
188
|
err = escResult[2];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../gs/path/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AAEvD,MAAM,CAAC,IAAI,aAAa,GAAc,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAE3E,wDAAwD;AACxD,yBAAyB;AACzB,EAAE;AACF,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,wDAAwD;AACxD,kDAAkD;AAClD,uCAAuC;AACvC,mDAAmD;AACnD,8DAA8D;AAC9D,mCAAmC;AACnC,EAAE;AACF,mBAAmB;AACnB,yDAAyD;AACzD,mCAAmC;AACnC,qDAAqD;AACrD,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,IAAY;IACjD,CAAC;QACC,uDAAuD;QAEvD,sCAAsC;QAEtC,8DAA8D;QAC9D,mEAAmE;QACnE,iBAAiB;QAEjB,qCAAqC;QACrC,iBAAiB;QAEjB,2DAA2D;QAE3D,wCAAwC;QACxC,kEAAkE;QAClE,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC;YACrC,
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../gs/path/match.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, } from './type.js';
|
|
1
|
+
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, getInterfaceLiteralTypeByName, } from './type.js';
|
|
2
2
|
export type { Type, ChanDir, Kind } from './type.js';
|
|
3
3
|
export { DeepEqual } from './deepequal.js';
|
|
4
4
|
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value.js';
|
package/dist/gs/reflect/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Export the main reflect functions organized like Go stdlib
|
|
2
|
-
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, } from './type.js';
|
|
2
|
+
export { TypeOf, TypeFor, ValueOf, Value, Kind_String, ArrayOf, SliceOf, PointerTo, PtrTo, MapOf, ChanOf, ChanDir_String, RecvDir, SendDir, BothDir, getInterfaceTypeByName, getInterfaceLiteralTypeByName, } from './type.js';
|
|
3
3
|
export { DeepEqual } from './deepequal.js';
|
|
4
4
|
export { Zero, Copy, Indirect, New, MakeSlice, MakeMap, Append, MakeChan, Select, } from './value.js';
|
|
5
5
|
export { Swapper } from './swapper.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/reflect/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/reflect/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,OAAO,EACP,OAAO,EACP,OAAO,EACP,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,GACP,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,iCAAiC;AACjC,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAA;AAWnB,wBAAwB;AACxB,OAAO,EACL,OAAO,EACP,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,GAAG,EACH,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,GACd,MAAM,WAAW,CAAA"}
|
|
@@ -174,6 +174,7 @@ export declare function TypeFor(): Type;
|
|
|
174
174
|
* and returns a Type for it. Returns an interface{} type if not found.
|
|
175
175
|
*/
|
|
176
176
|
export declare function getInterfaceTypeByName(name: string): Type;
|
|
177
|
+
export declare function getInterfaceLiteralTypeByName(name: string): Type;
|
|
177
178
|
export declare function canRangeFunc(t: Type): boolean;
|
|
178
179
|
export declare function canRangeFunc2(t: Type): boolean;
|
|
179
180
|
export declare function funcLayout(_t: Type, _rcvr: Type | null): {
|