quickjs 0.16.0 → 0.17.0.pre

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.
@@ -13,17 +13,7 @@ module Quickjs
13
13
  end
14
14
 
15
15
  def call(*args, on: nil)
16
- case on
17
- when Quickjs::VM
18
- _call_on(on, args)
19
- when nil, Hash
20
- vm = Quickjs::VM.new(**on || {})
21
- res = _call_on(vm, args)
22
- vm = nil
23
- res
24
- else
25
- raise ArgumentError, 'on: must be a Quickjs::VM, a Hash of VM options, or nil'
26
- end
16
+ Quickjs._with_vm(on) {|vm| _call_on(vm, args) }
27
17
  end
28
18
 
29
19
  private
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Quickjs
4
+ class Runnable
5
+ def initialize(bytecode)
6
+ @bytecode = bytecode
7
+ end
8
+
9
+ def to_s
10
+ @bytecode
11
+ end
12
+
13
+ def run(on: nil)
14
+ Quickjs._with_vm(on) {|vm| vm.send(:_run_bytecode, @bytecode) }
15
+ end
16
+ end
17
+
18
+ class VM
19
+ def compile(source, **opts)
20
+ Runnable.new(send(:_compile_to_bytecode, source, **opts))
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Quickjs
4
- VERSION = "0.16.0"
4
+ VERSION = "0.17.0.pre"
5
5
  end
data/lib/quickjs.rb CHANGED
@@ -7,6 +7,7 @@ require_relative "quickjs/subtle_crypto"
7
7
  require_relative "quickjs/crypto_key"
8
8
  require_relative "quickjs/function"
9
9
  require_relative "quickjs/quickjsrb"
10
+ require_relative "quickjs/runnable"
10
11
 
11
12
  module Quickjs
12
13
  class Blob
@@ -20,6 +21,7 @@ module Quickjs
20
21
  def eval_code(code, overwrite_opts = {})
21
22
  eval_opts = {}
22
23
  eval_opts[:filename] = overwrite_opts.delete(:filename) if overwrite_opts.key?(:filename)
24
+ eval_opts[:async] = overwrite_opts.delete(:async) if overwrite_opts.key?(:async)
23
25
  vm = Quickjs::VM.new(**overwrite_opts)
24
26
  res = vm.eval_code(code, **eval_opts)
25
27
  vm = nil
@@ -36,6 +38,20 @@ module Quickjs
36
38
  end
37
39
  module_function :_with_timeout
38
40
 
41
+ def _with_vm(on)
42
+ case on
43
+ when Quickjs::VM
44
+ yield on
45
+ when nil
46
+ yield Quickjs::VM.new
47
+ when Hash
48
+ yield Quickjs::VM.new(**on)
49
+ else
50
+ raise ArgumentError, 'on: must be a Quickjs::VM, a Hash of VM options, or nil'
51
+ end
52
+ end
53
+ module_function :_with_vm
54
+
39
55
  def _build_import(imported)
40
56
  code_define_global = ->(name) { "globalThis['#{name}'] = #{name};" }
41
57
  case imported
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "quickjs-rb-polyfills",
3
- "version": "0.16.0",
3
+ "version": "0.17.0.pre",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "quickjs-rb-polyfills",
9
- "version": "0.16.0",
9
+ "version": "0.17.0.pre",
10
10
  "dependencies": {
11
11
  "@formatjs/intl-datetimeformat": "^7.3.1",
12
12
  "@formatjs/intl-getcanonicallocales": "^3.2.2",
@@ -19,9 +19,9 @@
19
19
  }
20
20
  },
21
21
  "node_modules/@emnapi/core": {
22
- "version": "1.9.2",
23
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz",
24
- "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==",
22
+ "version": "1.10.0",
23
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
24
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
25
25
  "dev": true,
26
26
  "license": "MIT",
27
27
  "optional": true,
@@ -31,9 +31,9 @@
31
31
  }
32
32
  },
33
33
  "node_modules/@emnapi/runtime": {
34
- "version": "1.9.2",
35
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz",
36
- "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==",
34
+ "version": "1.10.0",
35
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
36
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
37
37
  "dev": true,
38
38
  "license": "MIT",
39
39
  "optional": true,
@@ -53,101 +53,85 @@
53
53
  }
54
54
  },
55
55
  "node_modules/@formatjs/bigdecimal": {
56
- "version": "0.2.0",
57
- "resolved": "https://registry.npmjs.org/@formatjs/bigdecimal/-/bigdecimal-0.2.0.tgz",
58
- "integrity": "sha512-GeaxHZbUoYvHL9tC5eltHLs+1zU70aPw0s7LwqgktIzF5oMhNY4o4deEtusJMsq7WFJF3Ye2zQEzdG8beVk73w==",
56
+ "version": "0.2.3",
57
+ "resolved": "https://registry.npmjs.org/@formatjs/bigdecimal/-/bigdecimal-0.2.3.tgz",
58
+ "integrity": "sha512-d7LpumdsbHueHdlVMos2yROIumyisUJNlFAk3PpN/5YcnXhWnkYmeiaQnOjqmmGx8BbaphoIyaF2CPus3cownw==",
59
59
  "license": "MIT"
60
60
  },
61
- "node_modules/@formatjs/ecma402-abstract": {
62
- "version": "3.2.0",
63
- "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-3.2.0.tgz",
64
- "integrity": "sha512-dHnqHgBo6GXYGRsepaE1wmsC2etaivOWd5VaJstZd+HI2zR3DCUjbDVZRtoPGkkXZmyHvBwrdEUuqfvzhF/DtQ==",
65
- "license": "MIT",
66
- "dependencies": {
67
- "@formatjs/bigdecimal": "0.2.0",
68
- "@formatjs/fast-memoize": "3.1.1",
69
- "@formatjs/intl-localematcher": "0.8.2"
70
- }
71
- },
72
61
  "node_modules/@formatjs/fast-memoize": {
73
- "version": "3.1.1",
74
- "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.1.tgz",
75
- "integrity": "sha512-CbNbf+tlJn1baRnPkNePnBqTLxGliG6DDgNa/UtV66abwIjwsliPMOt0172tzxABYzSuxZBZfcp//qI8AvBWPg==",
62
+ "version": "3.1.4",
63
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.4.tgz",
64
+ "integrity": "sha512-Lbke1aOrsygKKR09Ux0NrZgbTqpDmiwXOgzyDOJ8Owr1zd5qOKTauf62hH+Seeku3ju77rHWH9I5SfX2CN0vuA==",
76
65
  "license": "MIT"
77
66
  },
78
67
  "node_modules/@formatjs/intl-datetimeformat": {
79
- "version": "7.3.1",
80
- "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-7.3.1.tgz",
81
- "integrity": "sha512-FSnwLyQq7Zsw/H/CXASiwesijMU6C3Ir/gh4QVmH09ycK/84zgdTAfewJj5uw4S3L2FRx+oYF1BYkPtD9SFRmg==",
68
+ "version": "7.4.2",
69
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-7.4.2.tgz",
70
+ "integrity": "sha512-BwIDaewiY/vyQ2Vud5mQ1QxswZfgFuSm9jfAXSqAlLea1173HPbOR/IeCm63OaaHNogDNbNDQuiaN/3b38yAnw==",
82
71
  "license": "MIT",
83
72
  "dependencies": {
84
- "@formatjs/bigdecimal": "0.2.0",
85
- "@formatjs/ecma402-abstract": "3.2.0",
86
- "@formatjs/intl-localematcher": "0.8.2"
73
+ "@formatjs/bigdecimal": "0.2.3",
74
+ "@formatjs/intl-localematcher": "0.8.6"
87
75
  }
88
76
  },
89
77
  "node_modules/@formatjs/intl-getcanonicallocales": {
90
- "version": "3.2.2",
91
- "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-3.2.2.tgz",
92
- "integrity": "sha512-pjF2zC26yXXLv9FlPes6zzOme9MwgqyeWYu8r5bP7qEdoDcaGsuQO3mk6pQb57t9bxdbIwrAhZFy0hH760SeWw==",
78
+ "version": "3.2.6",
79
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-3.2.6.tgz",
80
+ "integrity": "sha512-vHJthiNaPxUnIvzXUGcea770v4Hg2UEDVglusg9l8O7R0k/nJgzbre/pJidohkB0dt1uRcDPD+WwrpAir3hLwQ==",
93
81
  "license": "MIT"
94
82
  },
95
83
  "node_modules/@formatjs/intl-locale": {
96
- "version": "5.3.1",
97
- "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-5.3.1.tgz",
98
- "integrity": "sha512-txs0HyscmgtmSzrQFzsrM6iYajsAuonoRtuackvAlmW9VX6H4FTL4TzEJoL/Qn6FFAXaQ+wxB5YqlNFR1PtlbQ==",
84
+ "version": "5.3.5",
85
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-5.3.5.tgz",
86
+ "integrity": "sha512-IeDGhU2nTNTmJbA9aIBKDLjSg4q57LYnb8+d0q7uYXmDBndo4oNufq2t9R7A9eeWngJAysvR3T8AHvPtudk2gQ==",
99
87
  "license": "MIT",
100
88
  "dependencies": {
101
- "@formatjs/ecma402-abstract": "3.2.0",
102
- "@formatjs/intl-getcanonicallocales": "3.2.2",
103
- "@formatjs/intl-supportedvaluesof": "2.3.0"
89
+ "@formatjs/intl-getcanonicallocales": "3.2.6",
90
+ "@formatjs/intl-supportedvaluesof": "2.3.4"
104
91
  }
105
92
  },
106
93
  "node_modules/@formatjs/intl-localematcher": {
107
- "version": "0.8.2",
108
- "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.2.tgz",
109
- "integrity": "sha512-q05KMYGJLyqFNFtIb8NhWLF5X3aK/k0wYt7dnRFuy6aLQL+vUwQ1cg5cO4qawEiINybeCPXAWlprY2mSBjSXAQ==",
94
+ "version": "0.8.6",
95
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.6.tgz",
96
+ "integrity": "sha512-AZRgUxj0q93lyF7Z5lFS85bLINXuBLX4R3tCKicO6fSWo6cvh9GQfoR3B1WlsqQwefZ1QORTivhInx7gM6HUzQ==",
110
97
  "license": "MIT",
111
98
  "dependencies": {
112
- "@formatjs/fast-memoize": "3.1.1"
99
+ "@formatjs/fast-memoize": "3.1.4"
113
100
  }
114
101
  },
115
102
  "node_modules/@formatjs/intl-numberformat": {
116
- "version": "9.3.1",
117
- "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-9.3.1.tgz",
118
- "integrity": "sha512-u3EIcq7Tkg3e26N234YFtoagyxOTvi3eHjDzLySXD/EVzRaon2DJp1N8GochRl3PKMi5++fY5m9t4En0gmoZaw==",
103
+ "version": "9.3.5",
104
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-9.3.5.tgz",
105
+ "integrity": "sha512-XAA/ds53WpPM6R4Ui644ICbmj9846PvioWkOzQvX44OCOPtoh4fiiab3qWSD5a1FK/Oc0NA5Mey+/xz1pfRv3Q==",
119
106
  "license": "MIT",
120
107
  "dependencies": {
121
- "@formatjs/bigdecimal": "0.2.0",
122
- "@formatjs/ecma402-abstract": "3.2.0",
123
- "@formatjs/intl-localematcher": "0.8.2"
108
+ "@formatjs/bigdecimal": "0.2.3",
109
+ "@formatjs/intl-localematcher": "0.8.6"
124
110
  }
125
111
  },
126
112
  "node_modules/@formatjs/intl-pluralrules": {
127
- "version": "6.3.1",
128
- "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-6.3.1.tgz",
129
- "integrity": "sha512-2sn5PxsN1X0NfHlXSPfVZ5Kh5K0sMgdlgij9B5R2BZqSNbwW5eLtQ9V4xHSjwkiBauMFM75xyqt+MsVtptjwtA==",
113
+ "version": "6.3.5",
114
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-6.3.5.tgz",
115
+ "integrity": "sha512-E5Tv6pZL+OGhRqYo7QTzE0jj8Ym7O2HcIb0v7qQG/C70OQACZ5ha7cksI2ZqTouJ6blOAsmBauBFxkTFT7b55A==",
130
116
  "license": "MIT",
131
117
  "dependencies": {
132
- "@formatjs/bigdecimal": "0.2.0",
133
- "@formatjs/ecma402-abstract": "3.2.0",
134
- "@formatjs/intl-localematcher": "0.8.2"
118
+ "@formatjs/bigdecimal": "0.2.3",
119
+ "@formatjs/intl-localematcher": "0.8.6"
135
120
  }
136
121
  },
137
122
  "node_modules/@formatjs/intl-supportedvaluesof": {
138
- "version": "2.3.0",
139
- "resolved": "https://registry.npmjs.org/@formatjs/intl-supportedvaluesof/-/intl-supportedvaluesof-2.3.0.tgz",
140
- "integrity": "sha512-Fjw2ur3N+GrMLxjT6jLPCuAKFRNcWB1GDHB77pN8Lktx2z7MHJnlCA8q4NEZbJsDdVDsCeaesudHBe6el3khkg==",
123
+ "version": "2.3.4",
124
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-supportedvaluesof/-/intl-supportedvaluesof-2.3.4.tgz",
125
+ "integrity": "sha512-oexqyYumVuwk4Gxm5LNaDOcUV/iHgGNaMc7zzYZaZsegAUPNlTTjwM0swnYyczmzz4Vor43boG5SYt+MbvKWng==",
141
126
  "license": "MIT",
142
127
  "dependencies": {
143
- "@formatjs/ecma402-abstract": "3.2.0",
144
- "@formatjs/fast-memoize": "3.1.1"
128
+ "@formatjs/fast-memoize": "3.1.4"
145
129
  }
146
130
  },
147
131
  "node_modules/@napi-rs/wasm-runtime": {
148
- "version": "1.1.3",
149
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.3.tgz",
150
- "integrity": "sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==",
132
+ "version": "1.1.4",
133
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
134
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
151
135
  "dev": true,
152
136
  "license": "MIT",
153
137
  "optional": true,
@@ -164,9 +148,9 @@
164
148
  }
165
149
  },
166
150
  "node_modules/@oxc-project/types": {
167
- "version": "0.124.0",
168
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz",
169
- "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==",
151
+ "version": "0.129.0",
152
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.129.0.tgz",
153
+ "integrity": "sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==",
170
154
  "dev": true,
171
155
  "license": "MIT",
172
156
  "funding": {
@@ -174,9 +158,9 @@
174
158
  }
175
159
  },
176
160
  "node_modules/@rolldown/binding-android-arm64": {
177
- "version": "1.0.0-rc.14",
178
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.14.tgz",
179
- "integrity": "sha512-rJgm6anlnBiT/lAhYXsBPaJhovM5JqRQ6k8UfDZdUXepaoxys8xcfNFp6bhJdbnTf2+I+YbLFJ5p1/VcI6wl2A==",
161
+ "version": "1.0.0",
162
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0.tgz",
163
+ "integrity": "sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==",
180
164
  "cpu": [
181
165
  "arm64"
182
166
  ],
@@ -191,9 +175,9 @@
191
175
  }
192
176
  },
193
177
  "node_modules/@rolldown/binding-darwin-arm64": {
194
- "version": "1.0.0-rc.14",
195
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.14.tgz",
196
- "integrity": "sha512-21+BaHtD0IF+cFaCJFMM5qMqtIDyT4dHcibIAEr7ZbtjG2MbXO5PjMqGN4rQkWAhrq638dcKWDZ5uUMUisJDHQ==",
178
+ "version": "1.0.0",
179
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0.tgz",
180
+ "integrity": "sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==",
197
181
  "cpu": [
198
182
  "arm64"
199
183
  ],
@@ -208,9 +192,9 @@
208
192
  }
209
193
  },
210
194
  "node_modules/@rolldown/binding-darwin-x64": {
211
- "version": "1.0.0-rc.14",
212
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.14.tgz",
213
- "integrity": "sha512-5hvOzj4a70rybFDFdKc8EclxoEzY7DjB53Xolbq8Sbo3HaN4U7j7Z45aPQXzCKG2I7HvybzdM2xW/AL0Afmrfg==",
195
+ "version": "1.0.0",
196
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0.tgz",
197
+ "integrity": "sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==",
214
198
  "cpu": [
215
199
  "x64"
216
200
  ],
@@ -225,9 +209,9 @@
225
209
  }
226
210
  },
227
211
  "node_modules/@rolldown/binding-freebsd-x64": {
228
- "version": "1.0.0-rc.14",
229
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.14.tgz",
230
- "integrity": "sha512-gVaINvIiN1YT7gjxs6d0//GDT2y2DTbKKIbLk5G5VOtCndHCTrbgceFlTgwq3h53k1OXTGd0gJtC5btDanjfbg==",
212
+ "version": "1.0.0",
213
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0.tgz",
214
+ "integrity": "sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==",
231
215
  "cpu": [
232
216
  "x64"
233
217
  ],
@@ -242,9 +226,9 @@
242
226
  }
243
227
  },
244
228
  "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
245
- "version": "1.0.0-rc.14",
246
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.14.tgz",
247
- "integrity": "sha512-el0dPE3R7H4e3wmaFN+1/jJe4nbTCdkbNMtw9Myj5t38eZXtv+O46hngnwq2VjeZOjz4Rc/FQDI+oGtE9pbZqQ==",
229
+ "version": "1.0.0",
230
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0.tgz",
231
+ "integrity": "sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==",
248
232
  "cpu": [
249
233
  "arm"
250
234
  ],
@@ -259,9 +243,9 @@
259
243
  }
260
244
  },
261
245
  "node_modules/@rolldown/binding-linux-arm64-gnu": {
262
- "version": "1.0.0-rc.14",
263
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.14.tgz",
264
- "integrity": "sha512-+q7jyEYbYHVa+EhjmSh0LcJB46ve0SdGnqGaWfV+g4ud+wzUxIgv4MxZmqG7jNR4wLKX0+FHPn6RP6MDe6T5ZQ==",
246
+ "version": "1.0.0",
247
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0.tgz",
248
+ "integrity": "sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==",
265
249
  "cpu": [
266
250
  "arm64"
267
251
  ],
@@ -276,9 +260,9 @@
276
260
  }
277
261
  },
278
262
  "node_modules/@rolldown/binding-linux-arm64-musl": {
279
- "version": "1.0.0-rc.14",
280
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.14.tgz",
281
- "integrity": "sha512-MM5zJpuf1Hz6JZmkZDi0WuJBqxDneYoh7WE8Hwy3bj2ebBMpAntS0CWgL/423P/5s9CzE9lygolMMdSkrtmDVg==",
263
+ "version": "1.0.0",
264
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0.tgz",
265
+ "integrity": "sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==",
282
266
  "cpu": [
283
267
  "arm64"
284
268
  ],
@@ -293,9 +277,9 @@
293
277
  }
294
278
  },
295
279
  "node_modules/@rolldown/binding-linux-ppc64-gnu": {
296
- "version": "1.0.0-rc.14",
297
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.14.tgz",
298
- "integrity": "sha512-73h3xZDs0MSqJGjMyV4EjLXBIRs+YeIs0XN2/6DT5I0W5HyjTagH4QXa3CRHL77UAyS5xpr+RxKlJhkR5g05fA==",
280
+ "version": "1.0.0",
281
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0.tgz",
282
+ "integrity": "sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==",
299
283
  "cpu": [
300
284
  "ppc64"
301
285
  ],
@@ -310,9 +294,9 @@
310
294
  }
311
295
  },
312
296
  "node_modules/@rolldown/binding-linux-s390x-gnu": {
313
- "version": "1.0.0-rc.14",
314
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.14.tgz",
315
- "integrity": "sha512-/Z9EkQlW8nnP1gmOjXIQRuGDadiRv/8gnYK0/dRv1nra4d2J2j70oqO4ltmpE0W24Ac7i1G0o/HIs9yXXj96mg==",
297
+ "version": "1.0.0",
298
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0.tgz",
299
+ "integrity": "sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==",
316
300
  "cpu": [
317
301
  "s390x"
318
302
  ],
@@ -327,9 +311,9 @@
327
311
  }
328
312
  },
329
313
  "node_modules/@rolldown/binding-linux-x64-gnu": {
330
- "version": "1.0.0-rc.14",
331
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.14.tgz",
332
- "integrity": "sha512-7V6pMjtRh0J7eIcLjs9EvcuSk5Vz4qDY+u8GojpPEQ8X4+6F8Qq1fOkeyTD6QQvZpiuWeWCvSNwjwfi86wIJ+w==",
314
+ "version": "1.0.0",
315
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0.tgz",
316
+ "integrity": "sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==",
333
317
  "cpu": [
334
318
  "x64"
335
319
  ],
@@ -344,9 +328,9 @@
344
328
  }
345
329
  },
346
330
  "node_modules/@rolldown/binding-linux-x64-musl": {
347
- "version": "1.0.0-rc.14",
348
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.14.tgz",
349
- "integrity": "sha512-Yxi4UdSPXJTtGjGEgObeWIWSOmVoXLXa8CmGCdb3GKmJS0kcmcklp1ClSC3VipQRxL0ALj9JuNUxfKUW6bIKjQ==",
331
+ "version": "1.0.0",
332
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0.tgz",
333
+ "integrity": "sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==",
350
334
  "cpu": [
351
335
  "x64"
352
336
  ],
@@ -361,9 +345,9 @@
361
345
  }
362
346
  },
363
347
  "node_modules/@rolldown/binding-openharmony-arm64": {
364
- "version": "1.0.0-rc.14",
365
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.14.tgz",
366
- "integrity": "sha512-YOC79AFS2WCHU6v47tNw/rsLXW/Lj/WDRf8IVDpqN3cZk8ucLFAPxGCeyrIuIE6mYlTQdgIvmj22c/NC9EHTvg==",
348
+ "version": "1.0.0",
349
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0.tgz",
350
+ "integrity": "sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==",
367
351
  "cpu": [
368
352
  "arm64"
369
353
  ],
@@ -378,9 +362,9 @@
378
362
  }
379
363
  },
380
364
  "node_modules/@rolldown/binding-wasm32-wasi": {
381
- "version": "1.0.0-rc.14",
382
- "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.14.tgz",
383
- "integrity": "sha512-dXoc9dGlySSwrn5hj8gaHTpFhJhh+eEHEQyWdqc56X/BCYxD1tjOAm5mkMXyEvolne9y9KCQgL1A/xEd1J3RBw==",
365
+ "version": "1.0.0",
366
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0.tgz",
367
+ "integrity": "sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==",
384
368
  "cpu": [
385
369
  "wasm32"
386
370
  ],
@@ -388,18 +372,18 @@
388
372
  "license": "MIT",
389
373
  "optional": true,
390
374
  "dependencies": {
391
- "@emnapi/core": "1.9.2",
392
- "@emnapi/runtime": "1.9.2",
393
- "@napi-rs/wasm-runtime": "^1.1.3"
375
+ "@emnapi/core": "1.10.0",
376
+ "@emnapi/runtime": "1.10.0",
377
+ "@napi-rs/wasm-runtime": "^1.1.4"
394
378
  },
395
379
  "engines": {
396
- "node": ">=14.0.0"
380
+ "node": "^20.19.0 || >=22.12.0"
397
381
  }
398
382
  },
399
383
  "node_modules/@rolldown/binding-win32-arm64-msvc": {
400
- "version": "1.0.0-rc.14",
401
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.14.tgz",
402
- "integrity": "sha512-G24v2feAC4rnKhlgzz0msbi4OCfvZHCS04Hayhy8Aj/kRLnUnN0JNMGJiNxsRLCmK2i9gBIR/X1geQysfr0h5g==",
384
+ "version": "1.0.0",
385
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0.tgz",
386
+ "integrity": "sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==",
403
387
  "cpu": [
404
388
  "arm64"
405
389
  ],
@@ -414,9 +398,9 @@
414
398
  }
415
399
  },
416
400
  "node_modules/@rolldown/binding-win32-x64-msvc": {
417
- "version": "1.0.0-rc.14",
418
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.14.tgz",
419
- "integrity": "sha512-yS/76wZ3HLwb20YbFHEiwoqz//0uFLyEye4IMmcyPFmxHMJnd7DgOcJCGjUG/7fswBkvGT2AJeT24UYOIBtBSw==",
401
+ "version": "1.0.0",
402
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0.tgz",
403
+ "integrity": "sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==",
420
404
  "cpu": [
421
405
  "x64"
422
406
  ],
@@ -431,16 +415,16 @@
431
415
  }
432
416
  },
433
417
  "node_modules/@rolldown/pluginutils": {
434
- "version": "1.0.0-rc.14",
435
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.14.tgz",
436
- "integrity": "sha512-ktoSqSpdex3xml4M3wV//KiF8MiQkMz8bz2e7SUJvCK9qyL/XjAnLLB+UO3+uE9RLxqUhuDzddc7Cf+EaZ169Q==",
418
+ "version": "1.0.0",
419
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0.tgz",
420
+ "integrity": "sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==",
437
421
  "dev": true,
438
422
  "license": "MIT"
439
423
  },
440
424
  "node_modules/@tybys/wasm-util": {
441
- "version": "0.10.1",
442
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
443
- "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
425
+ "version": "0.10.2",
426
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
427
+ "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
444
428
  "dev": true,
445
429
  "license": "MIT",
446
430
  "optional": true,
@@ -449,14 +433,14 @@
449
433
  }
450
434
  },
451
435
  "node_modules/rolldown": {
452
- "version": "1.0.0-rc.14",
453
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.14.tgz",
454
- "integrity": "sha512-bGQjaQyK9k7ovrbYNWNOHorqO0gYZpip+I3PTi4iDL1nDe1qkOOwYp2BHGnpCw4LVcTjM+rhJ0mvxX12lu3hiA==",
436
+ "version": "1.0.0",
437
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0.tgz",
438
+ "integrity": "sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==",
455
439
  "dev": true,
456
440
  "license": "MIT",
457
441
  "dependencies": {
458
- "@oxc-project/types": "=0.124.0",
459
- "@rolldown/pluginutils": "1.0.0-rc.14"
442
+ "@oxc-project/types": "=0.129.0",
443
+ "@rolldown/pluginutils": "1.0.0"
460
444
  },
461
445
  "bin": {
462
446
  "rolldown": "bin/cli.mjs"
@@ -465,21 +449,21 @@
465
449
  "node": "^20.19.0 || >=22.12.0"
466
450
  },
467
451
  "optionalDependencies": {
468
- "@rolldown/binding-android-arm64": "1.0.0-rc.14",
469
- "@rolldown/binding-darwin-arm64": "1.0.0-rc.14",
470
- "@rolldown/binding-darwin-x64": "1.0.0-rc.14",
471
- "@rolldown/binding-freebsd-x64": "1.0.0-rc.14",
472
- "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.14",
473
- "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.14",
474
- "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.14",
475
- "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.14",
476
- "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.14",
477
- "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.14",
478
- "@rolldown/binding-linux-x64-musl": "1.0.0-rc.14",
479
- "@rolldown/binding-openharmony-arm64": "1.0.0-rc.14",
480
- "@rolldown/binding-wasm32-wasi": "1.0.0-rc.14",
481
- "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.14",
482
- "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.14"
452
+ "@rolldown/binding-android-arm64": "1.0.0",
453
+ "@rolldown/binding-darwin-arm64": "1.0.0",
454
+ "@rolldown/binding-darwin-x64": "1.0.0",
455
+ "@rolldown/binding-freebsd-x64": "1.0.0",
456
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0",
457
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0",
458
+ "@rolldown/binding-linux-arm64-musl": "1.0.0",
459
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0",
460
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0",
461
+ "@rolldown/binding-linux-x64-gnu": "1.0.0",
462
+ "@rolldown/binding-linux-x64-musl": "1.0.0",
463
+ "@rolldown/binding-openharmony-arm64": "1.0.0",
464
+ "@rolldown/binding-wasm32-wasi": "1.0.0",
465
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0",
466
+ "@rolldown/binding-win32-x64-msvc": "1.0.0"
483
467
  }
484
468
  },
485
469
  "node_modules/tslib": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quickjs-rb-polyfills",
3
- "version": "0.16.0",
3
+ "version": "0.17.0.pre",
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "build": "rolldown -c rolldown.config.mjs",
data/sig/quickjs.rbs CHANGED
@@ -21,7 +21,9 @@ module Quickjs
21
21
  class VM
22
22
  def initialize: (?features: Array[Symbol], ?memory_limit: Integer, ?max_stack_size: Integer, ?timeout_msec: Integer) -> void
23
23
 
24
- def eval_code: (String code, ?filename: String) -> untyped
24
+ def eval_code: (String code, ?async: bool, ?filename: String) -> untyped
25
+
26
+ def compile: (String code, ?filename: String) -> Runnable
25
27
 
26
28
  def call: (String | Symbol name, *untyped args) -> untyped
27
29
 
@@ -37,6 +39,12 @@ module Quickjs
37
39
 
38
40
  def on_log: () { (Log) -> void } -> nil
39
41
 
42
+ def memory_usage: () -> Hash[Symbol, Integer]
43
+
44
+ def gc!: () -> nil
45
+
46
+ def memory_poisoned?: () -> bool
47
+
40
48
  class Log
41
49
  attr_reader severity: Symbol
42
50
 
@@ -56,6 +64,14 @@ module Quickjs
56
64
  def call: (*untyped args, ?on: VM | Hash[Symbol, untyped] | nil) -> untyped
57
65
  end
58
66
 
67
+ class Runnable
68
+ def initialize: (String bytecode) -> void
69
+
70
+ def to_s: () -> String
71
+
72
+ def run: (?on: VM | Hash[Symbol, untyped] | nil) -> untyped
73
+ end
74
+
59
75
  class RuntimeError < ::RuntimeError
60
76
  def initialize: (String message, String? js_name) -> void
61
77
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickjs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - hmsk
@@ -91,6 +91,7 @@ files:
91
91
  - lib/quickjs.rb
92
92
  - lib/quickjs/crypto_key.rb
93
93
  - lib/quickjs/function.rb
94
+ - lib/quickjs/runnable.rb
94
95
  - lib/quickjs/subtle_crypto.rb
95
96
  - lib/quickjs/version.rb
96
97
  - polyfills/check-licenses.mjs