goscript 0.0.23 → 0.0.25
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/README.md +2 -2
- package/cmd/goscript/cmd_compile.go +18 -2
- package/compiler/analysis.go +74 -132
- package/compiler/analysis_test.go +220 -0
- package/compiler/assignment.go +37 -43
- package/compiler/builtin_test.go +90 -0
- package/compiler/compiler.go +307 -22
- package/compiler/composite-lit.go +108 -43
- package/compiler/config.go +7 -3
- package/compiler/config_test.go +6 -33
- package/compiler/decl.go +7 -1
- package/compiler/expr-call.go +212 -2
- package/compiler/expr-selector.go +66 -41
- package/compiler/expr-star.go +57 -65
- package/compiler/expr-type.go +1 -1
- package/compiler/expr-value.go +1 -1
- package/compiler/expr.go +125 -20
- package/compiler/field.go +4 -4
- package/compiler/primitive.go +11 -10
- package/compiler/spec-struct.go +3 -3
- package/compiler/spec-value.go +75 -29
- package/compiler/spec.go +9 -3
- package/compiler/stmt-assign.go +36 -2
- package/compiler/stmt-for.go +11 -0
- package/compiler/stmt-range.go +314 -1
- package/compiler/stmt.go +52 -0
- package/compiler/type.go +83 -15
- package/dist/gs/builtin/builtin.d.ts +9 -0
- package/dist/gs/builtin/builtin.js +46 -0
- package/dist/gs/builtin/builtin.js.map +1 -0
- package/dist/gs/builtin/channel.d.ts +193 -0
- package/dist/gs/builtin/channel.js +471 -0
- package/dist/gs/builtin/channel.js.map +1 -0
- package/dist/gs/builtin/defer.d.ts +38 -0
- package/dist/gs/builtin/defer.js +54 -0
- package/dist/gs/builtin/defer.js.map +1 -0
- package/dist/gs/builtin/index.d.ts +1 -0
- package/dist/gs/builtin/index.js +2 -0
- package/dist/gs/builtin/index.js.map +1 -0
- package/dist/gs/builtin/io.d.ts +16 -0
- package/dist/gs/builtin/io.js +15 -0
- package/dist/gs/builtin/io.js.map +1 -0
- package/dist/gs/builtin/map.d.ts +33 -0
- package/dist/gs/builtin/map.js +44 -0
- package/dist/gs/builtin/map.js.map +1 -0
- package/dist/gs/builtin/slice.d.ts +173 -0
- package/dist/gs/builtin/slice.js +799 -0
- package/dist/gs/builtin/slice.js.map +1 -0
- package/dist/gs/builtin/type.d.ts +203 -0
- package/dist/gs/builtin/type.js +744 -0
- package/dist/gs/builtin/type.js.map +1 -0
- package/dist/gs/builtin/varRef.d.ts +14 -0
- package/dist/gs/builtin/varRef.js +14 -0
- package/dist/gs/builtin/varRef.js.map +1 -0
- package/dist/gs/cmp/index.d.ts +4 -0
- package/dist/gs/cmp/index.js +27 -0
- package/dist/gs/cmp/index.js.map +1 -0
- package/dist/gs/context/context.d.ts +26 -0
- package/dist/gs/context/context.js +305 -0
- package/dist/gs/context/context.js.map +1 -0
- package/dist/gs/context/index.d.ts +1 -0
- package/dist/gs/context/index.js +2 -0
- package/dist/gs/context/index.js.map +1 -0
- package/dist/gs/internal/goarch/index.d.ts +6 -0
- package/dist/gs/internal/goarch/index.js +14 -0
- package/dist/gs/internal/goarch/index.js.map +1 -0
- package/dist/gs/iter/index.d.ts +1 -0
- package/dist/gs/iter/index.js +2 -0
- package/dist/gs/iter/index.js.map +1 -0
- package/dist/gs/iter/iter.d.ts +4 -0
- package/dist/gs/iter/iter.js +91 -0
- package/dist/gs/iter/iter.js.map +1 -0
- package/dist/gs/math/bits/index.d.ts +47 -0
- package/dist/gs/math/bits/index.js +298 -0
- package/dist/gs/math/bits/index.js.map +1 -0
- package/dist/gs/runtime/index.d.ts +1 -0
- package/dist/gs/runtime/index.js +2 -0
- package/dist/gs/runtime/index.js.map +1 -0
- package/dist/gs/runtime/runtime.d.ts +41 -0
- package/dist/gs/runtime/runtime.js +158 -0
- package/dist/gs/runtime/runtime.js.map +1 -0
- package/dist/gs/slices/index.d.ts +1 -0
- package/dist/gs/slices/index.js +2 -0
- package/dist/gs/slices/index.js.map +1 -0
- package/dist/gs/slices/slices.d.ts +8 -0
- package/dist/gs/slices/slices.js +20 -0
- package/dist/gs/slices/slices.js.map +1 -0
- package/dist/gs/time/index.d.ts +1 -0
- package/dist/gs/time/index.js +2 -0
- package/dist/gs/time/index.js.map +1 -0
- package/dist/gs/time/time.d.ts +57 -0
- package/dist/gs/time/time.js +208 -0
- package/dist/gs/time/time.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slice.js","sourceRoot":"","sources":["../../../gs/builtin/slice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the kinds of Go types that can be registered at runtime.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum TypeKind {
|
|
5
|
+
Basic = "basic",
|
|
6
|
+
Interface = "interface",
|
|
7
|
+
Struct = "struct",
|
|
8
|
+
Map = "map",
|
|
9
|
+
Slice = "slice",
|
|
10
|
+
Array = "array",
|
|
11
|
+
Pointer = "pointer",
|
|
12
|
+
Function = "function",
|
|
13
|
+
Channel = "channel"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Base type information shared by all type kinds
|
|
17
|
+
*/
|
|
18
|
+
export interface BaseTypeInfo {
|
|
19
|
+
name?: string;
|
|
20
|
+
kind: TypeKind;
|
|
21
|
+
zeroValue?: any;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Represents an argument or a return value of a method.
|
|
25
|
+
*/
|
|
26
|
+
export interface MethodArg {
|
|
27
|
+
name?: string;
|
|
28
|
+
type: TypeInfo | string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Represents the signature of a method, including its name, arguments, and return types.
|
|
32
|
+
*/
|
|
33
|
+
export interface MethodSignature {
|
|
34
|
+
name: string;
|
|
35
|
+
args: MethodArg[];
|
|
36
|
+
returns: MethodArg[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Type information for struct types
|
|
40
|
+
*/
|
|
41
|
+
export interface StructTypeInfo extends BaseTypeInfo {
|
|
42
|
+
kind: TypeKind.Struct;
|
|
43
|
+
methods: MethodSignature[];
|
|
44
|
+
ctor?: new (...args: any[]) => any;
|
|
45
|
+
fields: Record<string, TypeInfo | string>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Type information for interface types
|
|
49
|
+
*/
|
|
50
|
+
export interface InterfaceTypeInfo extends BaseTypeInfo {
|
|
51
|
+
kind: TypeKind.Interface;
|
|
52
|
+
methods: MethodSignature[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Type information for basic types (string, number, boolean)
|
|
56
|
+
*/
|
|
57
|
+
export interface BasicTypeInfo extends BaseTypeInfo {
|
|
58
|
+
kind: TypeKind.Basic;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Type information for map types
|
|
62
|
+
*/
|
|
63
|
+
export interface MapTypeInfo extends BaseTypeInfo {
|
|
64
|
+
kind: TypeKind.Map;
|
|
65
|
+
keyType?: string | TypeInfo;
|
|
66
|
+
elemType?: string | TypeInfo;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Type information for slice types
|
|
70
|
+
*/
|
|
71
|
+
export interface SliceTypeInfo extends BaseTypeInfo {
|
|
72
|
+
kind: TypeKind.Slice;
|
|
73
|
+
elemType?: string | TypeInfo;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Type information for array types
|
|
77
|
+
*/
|
|
78
|
+
export interface ArrayTypeInfo extends BaseTypeInfo {
|
|
79
|
+
kind: TypeKind.Array;
|
|
80
|
+
elemType?: string | TypeInfo;
|
|
81
|
+
length: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Type information for pointer types
|
|
85
|
+
*/
|
|
86
|
+
export interface PointerTypeInfo extends BaseTypeInfo {
|
|
87
|
+
kind: TypeKind.Pointer;
|
|
88
|
+
elemType?: string | TypeInfo;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Type information for function types
|
|
92
|
+
*/
|
|
93
|
+
export interface FunctionTypeInfo extends BaseTypeInfo {
|
|
94
|
+
kind: TypeKind.Function;
|
|
95
|
+
params?: (string | TypeInfo)[];
|
|
96
|
+
results?: (string | TypeInfo)[];
|
|
97
|
+
isVariadic?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Type information for channel types
|
|
101
|
+
*/
|
|
102
|
+
export interface ChannelTypeInfo extends BaseTypeInfo {
|
|
103
|
+
kind: TypeKind.Channel;
|
|
104
|
+
elemType?: string | TypeInfo;
|
|
105
|
+
direction?: 'send' | 'receive' | 'both';
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* TypeInfo is used for runtime type checking.
|
|
109
|
+
* Can be a registered type (from typeRegistry) or an ad-hoc type description.
|
|
110
|
+
* When used as input to typeAssert, it can be a string (type name) or a structured description.
|
|
111
|
+
*/
|
|
112
|
+
export type TypeInfo = StructTypeInfo | InterfaceTypeInfo | BasicTypeInfo | MapTypeInfo | SliceTypeInfo | ArrayTypeInfo | PointerTypeInfo | FunctionTypeInfo | ChannelTypeInfo;
|
|
113
|
+
export declare function isStructTypeInfo(info: TypeInfo): info is StructTypeInfo;
|
|
114
|
+
export declare function isInterfaceTypeInfo(info: TypeInfo): info is InterfaceTypeInfo;
|
|
115
|
+
export declare function isBasicTypeInfo(info: TypeInfo): info is BasicTypeInfo;
|
|
116
|
+
export declare function isMapTypeInfo(info: TypeInfo): info is MapTypeInfo;
|
|
117
|
+
export declare function isSliceTypeInfo(info: TypeInfo): info is SliceTypeInfo;
|
|
118
|
+
export declare function isArrayTypeInfo(info: TypeInfo): info is ArrayTypeInfo;
|
|
119
|
+
export declare function isPointerTypeInfo(info: TypeInfo): info is PointerTypeInfo;
|
|
120
|
+
export declare function isFunctionTypeInfo(info: TypeInfo): info is FunctionTypeInfo;
|
|
121
|
+
export declare function isChannelTypeInfo(info: TypeInfo): info is ChannelTypeInfo;
|
|
122
|
+
/**
|
|
123
|
+
* Comparable interface for Go's comparable constraint.
|
|
124
|
+
* Types that implement this can be compared with == and !=.
|
|
125
|
+
*/
|
|
126
|
+
export interface Comparable {
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Registers a struct type with the runtime type system.
|
|
130
|
+
*
|
|
131
|
+
* @param name The name of the type.
|
|
132
|
+
* @param zeroValue The zero value for the type.
|
|
133
|
+
* @param methods Array of method signatures for the struct.
|
|
134
|
+
* @param ctor Constructor for the struct.
|
|
135
|
+
* @param fields Record of field names and their types.
|
|
136
|
+
* @returns The struct type information object.
|
|
137
|
+
*/
|
|
138
|
+
export declare const registerStructType: (name: string, zeroValue: any, methods: MethodSignature[], ctor: new (...args: any[]) => any, fields?: Record<string, TypeInfo | string>) => StructTypeInfo;
|
|
139
|
+
/**
|
|
140
|
+
* Registers an interface type with the runtime type system.
|
|
141
|
+
*
|
|
142
|
+
* @param name The name of the type.
|
|
143
|
+
* @param zeroValue The zero value for the type (usually null).
|
|
144
|
+
* @param methods Array of method signatures for the interface.
|
|
145
|
+
* @returns The interface type information object.
|
|
146
|
+
*/
|
|
147
|
+
export declare const registerInterfaceType: (name: string, zeroValue: any, methods: MethodSignature[]) => InterfaceTypeInfo;
|
|
148
|
+
/**
|
|
149
|
+
* Represents the result of a type assertion.
|
|
150
|
+
*/
|
|
151
|
+
export interface TypeAssertResult<T> {
|
|
152
|
+
value: T;
|
|
153
|
+
ok: boolean;
|
|
154
|
+
}
|
|
155
|
+
export declare function areTypeInfosIdentical(type1InfoOrName: string | TypeInfo, type2InfoOrName: string | TypeInfo): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Performs a type assertion on a value against a specified type.
|
|
158
|
+
* Returns an object containing the value (cast to type T) and a boolean indicating success.
|
|
159
|
+
* This is used to implement Go's type assertion with comma-ok idiom: value, ok := x.(Type)
|
|
160
|
+
*
|
|
161
|
+
* @param value The value to check against the type
|
|
162
|
+
* @param typeInfo The type information to check against (can be a string name or TypeInfo object)
|
|
163
|
+
* @returns An object with the asserted value and a boolean indicating if the assertion succeeded
|
|
164
|
+
*/
|
|
165
|
+
export declare function typeAssert<T>(value: any, typeInfo: string | TypeInfo): TypeAssertResult<T>;
|
|
166
|
+
/**
|
|
167
|
+
* Performs a type assertion on a value against a specified type.
|
|
168
|
+
* Returns the value (cast to type T) if the assertion is successful,
|
|
169
|
+
* otherwise throws a runtime error.
|
|
170
|
+
* This is used to implement Go's single-value type assertion: value := x.(Type)
|
|
171
|
+
*
|
|
172
|
+
* @param value The value to check against the type
|
|
173
|
+
* @param typeInfo The type information to check against (can be a string name or TypeInfo object)
|
|
174
|
+
* @returns The asserted value if the assertion succeeded
|
|
175
|
+
* @throws Error if the type assertion fails
|
|
176
|
+
*/
|
|
177
|
+
export declare function mustTypeAssert<T>(value: any, typeInfo: string | TypeInfo): T;
|
|
178
|
+
/**
|
|
179
|
+
* Checks if a value is of a specific type.
|
|
180
|
+
* Similar to typeAssert but only returns a boolean without extracting the value.
|
|
181
|
+
*
|
|
182
|
+
* @param value The value to check
|
|
183
|
+
* @param typeInfo The type information to check against
|
|
184
|
+
* @returns True if the value matches the type, false otherwise
|
|
185
|
+
*/
|
|
186
|
+
export declare function is(value: any, typeInfo: string | TypeInfo): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Represents a case in a type switch statement.
|
|
189
|
+
* Each case matches against one or more types and contains a body function to execute when matched.
|
|
190
|
+
*/
|
|
191
|
+
export interface TypeSwitchCase {
|
|
192
|
+
types: (string | TypeInfo)[];
|
|
193
|
+
body: (value?: any) => void;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Helper for Go's type switch statement.
|
|
197
|
+
* Executes the body of the first case whose type matches the value.
|
|
198
|
+
*
|
|
199
|
+
* @param value The value being switched upon.
|
|
200
|
+
* @param cases An array of TypeSwitchCase objects.
|
|
201
|
+
* @param defaultCase Optional function for the default case.
|
|
202
|
+
*/
|
|
203
|
+
export declare function typeSwitch(value: any, cases: TypeSwitchCase[], defaultCase?: () => void): void;
|