@suchipi/quickjs 0.8.0 → 0.9.0

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.
Files changed (225) hide show
  1. package/README.md +4 -1
  2. package/build/aarch64-apple-darwin/bin/qjs +0 -0
  3. package/build/aarch64-apple-darwin/bin/qjsbootstrap +0 -0
  4. package/build/aarch64-apple-darwin/bin/qjsbootstrap-bytecode +0 -0
  5. package/build/aarch64-apple-darwin/bin/qjsc +0 -0
  6. package/build/aarch64-apple-darwin/bin/quickjs-run +0 -0
  7. package/build/aarch64-apple-darwin/extras/is-stdin-a-tty +0 -0
  8. package/build/aarch64-apple-darwin/extras/run-test262 +0 -0
  9. package/build/aarch64-apple-darwin/extras/sample-program/sum +0 -0
  10. package/build/aarch64-apple-darwin/extras/stack-limit-test +0 -0
  11. package/build/aarch64-apple-darwin/include/quickjs-full-init.h +19 -0
  12. package/build/aarch64-apple-darwin/include/quickjs-inspect.h +9 -0
  13. package/build/aarch64-apple-darwin/include/quickjs-intervals.h +9 -0
  14. package/build/aarch64-apple-darwin/include/quickjs-libbytecode.h +8 -0
  15. package/build/aarch64-apple-darwin/include/quickjs-libc.h +65 -0
  16. package/build/aarch64-apple-darwin/include/quickjs-libcontext.h +8 -0
  17. package/build/aarch64-apple-darwin/include/quickjs-libencoding.h +8 -0
  18. package/build/aarch64-apple-darwin/include/quickjs-libengine.h +8 -0
  19. package/build/aarch64-apple-darwin/include/quickjs-libpointer.h +9 -0
  20. package/build/aarch64-apple-darwin/include/quickjs-modulesys.h +68 -0
  21. package/build/aarch64-apple-darwin/include/quickjs-print.h +9 -0
  22. package/build/aarch64-apple-darwin/include/quickjs-utils.h +49 -0
  23. package/build/aarch64-apple-darwin/include/quickjs.h +1195 -0
  24. package/build/aarch64-apple-darwin/lib/quickjs-core.a +0 -0
  25. package/build/aarch64-apple-darwin/lib/quickjs-full.a +0 -0
  26. package/build/aarch64-unknown-linux-gnu/bin/qjs +0 -0
  27. package/build/aarch64-unknown-linux-gnu/bin/qjsbootstrap +0 -0
  28. package/build/aarch64-unknown-linux-gnu/bin/qjsbootstrap-bytecode +0 -0
  29. package/build/aarch64-unknown-linux-gnu/bin/qjsc +0 -0
  30. package/build/aarch64-unknown-linux-gnu/bin/quickjs-run +0 -0
  31. package/build/aarch64-unknown-linux-gnu/extras/is-stdin-a-tty +0 -0
  32. package/build/aarch64-unknown-linux-gnu/extras/run-test262 +0 -0
  33. package/build/aarch64-unknown-linux-gnu/extras/sample-program/sum +0 -0
  34. package/build/aarch64-unknown-linux-gnu/extras/stack-limit-test +0 -0
  35. package/build/aarch64-unknown-linux-gnu/include/quickjs-full-init.h +19 -0
  36. package/build/aarch64-unknown-linux-gnu/include/quickjs-inspect.h +9 -0
  37. package/build/aarch64-unknown-linux-gnu/include/quickjs-intervals.h +9 -0
  38. package/build/aarch64-unknown-linux-gnu/include/quickjs-libbytecode.h +8 -0
  39. package/build/aarch64-unknown-linux-gnu/include/quickjs-libc.h +65 -0
  40. package/build/aarch64-unknown-linux-gnu/include/quickjs-libcontext.h +8 -0
  41. package/build/aarch64-unknown-linux-gnu/include/quickjs-libencoding.h +8 -0
  42. package/build/aarch64-unknown-linux-gnu/include/quickjs-libengine.h +8 -0
  43. package/build/aarch64-unknown-linux-gnu/include/quickjs-libpointer.h +9 -0
  44. package/build/aarch64-unknown-linux-gnu/include/quickjs-modulesys.h +68 -0
  45. package/build/aarch64-unknown-linux-gnu/include/quickjs-print.h +9 -0
  46. package/build/aarch64-unknown-linux-gnu/include/quickjs-utils.h +49 -0
  47. package/build/aarch64-unknown-linux-gnu/include/quickjs.h +1195 -0
  48. package/build/aarch64-unknown-linux-gnu/lib/quickjs-core.a +0 -0
  49. package/build/aarch64-unknown-linux-gnu/lib/quickjs-full.a +0 -0
  50. package/build/aarch64-unknown-linux-musl/bin/qjs +0 -0
  51. package/build/aarch64-unknown-linux-musl/bin/qjsbootstrap +0 -0
  52. package/build/aarch64-unknown-linux-musl/bin/qjsbootstrap-bytecode +0 -0
  53. package/build/aarch64-unknown-linux-musl/bin/qjsc +0 -0
  54. package/build/aarch64-unknown-linux-musl/bin/quickjs-run +0 -0
  55. package/build/aarch64-unknown-linux-musl/extras/is-stdin-a-tty +0 -0
  56. package/build/aarch64-unknown-linux-musl/extras/run-test262 +0 -0
  57. package/build/aarch64-unknown-linux-musl/extras/sample-program/sum +0 -0
  58. package/build/aarch64-unknown-linux-musl/extras/stack-limit-test +0 -0
  59. package/build/aarch64-unknown-linux-musl/include/quickjs-full-init.h +19 -0
  60. package/build/aarch64-unknown-linux-musl/include/quickjs-inspect.h +9 -0
  61. package/build/aarch64-unknown-linux-musl/include/quickjs-intervals.h +9 -0
  62. package/build/aarch64-unknown-linux-musl/include/quickjs-libbytecode.h +8 -0
  63. package/build/aarch64-unknown-linux-musl/include/quickjs-libc.h +65 -0
  64. package/build/aarch64-unknown-linux-musl/include/quickjs-libcontext.h +8 -0
  65. package/build/aarch64-unknown-linux-musl/include/quickjs-libencoding.h +8 -0
  66. package/build/aarch64-unknown-linux-musl/include/quickjs-libengine.h +8 -0
  67. package/build/aarch64-unknown-linux-musl/include/quickjs-libpointer.h +9 -0
  68. package/build/aarch64-unknown-linux-musl/include/quickjs-modulesys.h +68 -0
  69. package/build/aarch64-unknown-linux-musl/include/quickjs-print.h +9 -0
  70. package/build/aarch64-unknown-linux-musl/include/quickjs-utils.h +49 -0
  71. package/build/aarch64-unknown-linux-musl/include/quickjs.h +1195 -0
  72. package/build/aarch64-unknown-linux-musl/lib/quickjs-core.a +0 -0
  73. package/build/aarch64-unknown-linux-musl/lib/quickjs-full.a +0 -0
  74. package/build/aarch64-unknown-linux-static/bin/qjs +0 -0
  75. package/build/aarch64-unknown-linux-static/bin/qjsbootstrap +0 -0
  76. package/build/aarch64-unknown-linux-static/bin/qjsbootstrap-bytecode +0 -0
  77. package/build/aarch64-unknown-linux-static/bin/qjsc +0 -0
  78. package/build/aarch64-unknown-linux-static/bin/quickjs-run +0 -0
  79. package/build/aarch64-unknown-linux-static/extras/is-stdin-a-tty +0 -0
  80. package/build/aarch64-unknown-linux-static/extras/run-test262 +0 -0
  81. package/build/aarch64-unknown-linux-static/extras/sample-program/sum +0 -0
  82. package/build/aarch64-unknown-linux-static/extras/stack-limit-test +0 -0
  83. package/build/aarch64-unknown-linux-static/include/quickjs-full-init.h +19 -0
  84. package/build/aarch64-unknown-linux-static/include/quickjs-inspect.h +9 -0
  85. package/build/aarch64-unknown-linux-static/include/quickjs-intervals.h +9 -0
  86. package/build/aarch64-unknown-linux-static/include/quickjs-libbytecode.h +8 -0
  87. package/build/aarch64-unknown-linux-static/include/quickjs-libc.h +65 -0
  88. package/build/aarch64-unknown-linux-static/include/quickjs-libcontext.h +8 -0
  89. package/build/aarch64-unknown-linux-static/include/quickjs-libencoding.h +8 -0
  90. package/build/aarch64-unknown-linux-static/include/quickjs-libengine.h +8 -0
  91. package/build/aarch64-unknown-linux-static/include/quickjs-libpointer.h +9 -0
  92. package/build/aarch64-unknown-linux-static/include/quickjs-modulesys.h +68 -0
  93. package/build/aarch64-unknown-linux-static/include/quickjs-print.h +9 -0
  94. package/build/aarch64-unknown-linux-static/include/quickjs-utils.h +49 -0
  95. package/build/aarch64-unknown-linux-static/include/quickjs.h +1195 -0
  96. package/build/aarch64-unknown-linux-static/lib/quickjs-core.a +0 -0
  97. package/build/aarch64-unknown-linux-static/lib/quickjs-full.a +0 -0
  98. package/build/dts/quickjs-intervals.d.ts +4 -0
  99. package/build/dts/quickjs-libc.d.ts +0 -76
  100. package/build/dts/quickjs-libcontext.d.ts +0 -3
  101. package/build/dts/quickjs-print.d.ts +26 -0
  102. package/build/x86_64-apple-darwin/bin/qjs +0 -0
  103. package/build/x86_64-apple-darwin/bin/qjsbootstrap +0 -0
  104. package/build/x86_64-apple-darwin/bin/qjsbootstrap-bytecode +0 -0
  105. package/build/x86_64-apple-darwin/bin/qjsc +0 -0
  106. package/build/x86_64-apple-darwin/bin/quickjs-run +0 -0
  107. package/build/x86_64-apple-darwin/extras/is-stdin-a-tty +0 -0
  108. package/build/x86_64-apple-darwin/extras/run-test262 +0 -0
  109. package/build/x86_64-apple-darwin/extras/sample-program/sum +0 -0
  110. package/build/x86_64-apple-darwin/extras/stack-limit-test +0 -0
  111. package/build/x86_64-apple-darwin/include/quickjs-full-init.h +19 -0
  112. package/build/x86_64-apple-darwin/include/quickjs-inspect.h +9 -0
  113. package/build/x86_64-apple-darwin/include/quickjs-intervals.h +9 -0
  114. package/build/x86_64-apple-darwin/include/quickjs-libbytecode.h +8 -0
  115. package/build/x86_64-apple-darwin/include/quickjs-libc.h +65 -0
  116. package/build/x86_64-apple-darwin/include/quickjs-libcontext.h +8 -0
  117. package/build/x86_64-apple-darwin/include/quickjs-libencoding.h +8 -0
  118. package/build/x86_64-apple-darwin/include/quickjs-libengine.h +8 -0
  119. package/build/x86_64-apple-darwin/include/quickjs-libpointer.h +9 -0
  120. package/build/x86_64-apple-darwin/include/quickjs-modulesys.h +68 -0
  121. package/build/x86_64-apple-darwin/include/quickjs-print.h +9 -0
  122. package/build/x86_64-apple-darwin/include/quickjs-utils.h +49 -0
  123. package/build/x86_64-apple-darwin/include/quickjs.h +1195 -0
  124. package/build/x86_64-apple-darwin/lib/quickjs-core.a +0 -0
  125. package/build/x86_64-apple-darwin/lib/quickjs-full.a +0 -0
  126. package/build/x86_64-pc-windows-static/bin/qjs.exe +0 -0
  127. package/build/x86_64-pc-windows-static/bin/qjsbootstrap-bytecode.exe +0 -0
  128. package/build/x86_64-pc-windows-static/bin/qjsbootstrap.exe +0 -0
  129. package/build/x86_64-pc-windows-static/bin/qjsc.exe +0 -0
  130. package/build/x86_64-pc-windows-static/bin/quickjs-run.exe +0 -0
  131. package/build/x86_64-pc-windows-static/extras/is-stdin-a-tty.exe +0 -0
  132. package/build/x86_64-pc-windows-static/extras/log-argv.exe +0 -0
  133. package/build/x86_64-pc-windows-static/extras/run-test262.exe +0 -0
  134. package/build/x86_64-pc-windows-static/extras/sample-program/sum.exe +0 -0
  135. package/build/x86_64-pc-windows-static/extras/stack-limit-test.exe +0 -0
  136. package/build/x86_64-pc-windows-static/include/quickjs-full-init.h +19 -0
  137. package/build/x86_64-pc-windows-static/include/quickjs-inspect.h +9 -0
  138. package/build/x86_64-pc-windows-static/include/quickjs-intervals.h +9 -0
  139. package/build/x86_64-pc-windows-static/include/quickjs-libbytecode.h +8 -0
  140. package/build/x86_64-pc-windows-static/include/quickjs-libc.h +65 -0
  141. package/build/x86_64-pc-windows-static/include/quickjs-libcontext.h +8 -0
  142. package/build/x86_64-pc-windows-static/include/quickjs-libencoding.h +8 -0
  143. package/build/x86_64-pc-windows-static/include/quickjs-libengine.h +8 -0
  144. package/build/x86_64-pc-windows-static/include/quickjs-libpointer.h +9 -0
  145. package/build/x86_64-pc-windows-static/include/quickjs-modulesys.h +68 -0
  146. package/build/x86_64-pc-windows-static/include/quickjs-print.h +9 -0
  147. package/build/x86_64-pc-windows-static/include/quickjs-utils.h +49 -0
  148. package/build/x86_64-pc-windows-static/include/quickjs.h +1195 -0
  149. package/build/x86_64-pc-windows-static/lib/quickjs-core.a +0 -0
  150. package/build/x86_64-pc-windows-static/lib/quickjs-full.a +0 -0
  151. package/build/x86_64-unknown-linux-gnu/bin/qjs +0 -0
  152. package/build/x86_64-unknown-linux-gnu/bin/qjsbootstrap +0 -0
  153. package/build/x86_64-unknown-linux-gnu/bin/qjsbootstrap-bytecode +0 -0
  154. package/build/x86_64-unknown-linux-gnu/bin/qjsc +0 -0
  155. package/build/x86_64-unknown-linux-gnu/bin/quickjs-run +0 -0
  156. package/build/x86_64-unknown-linux-gnu/extras/is-stdin-a-tty +0 -0
  157. package/build/x86_64-unknown-linux-gnu/extras/run-test262 +0 -0
  158. package/build/x86_64-unknown-linux-gnu/extras/sample-program/sum +0 -0
  159. package/build/x86_64-unknown-linux-gnu/extras/stack-limit-test +0 -0
  160. package/build/x86_64-unknown-linux-gnu/include/quickjs-full-init.h +19 -0
  161. package/build/x86_64-unknown-linux-gnu/include/quickjs-inspect.h +9 -0
  162. package/build/x86_64-unknown-linux-gnu/include/quickjs-intervals.h +9 -0
  163. package/build/x86_64-unknown-linux-gnu/include/quickjs-libbytecode.h +8 -0
  164. package/build/x86_64-unknown-linux-gnu/include/quickjs-libc.h +65 -0
  165. package/build/x86_64-unknown-linux-gnu/include/quickjs-libcontext.h +8 -0
  166. package/build/x86_64-unknown-linux-gnu/include/quickjs-libencoding.h +8 -0
  167. package/build/x86_64-unknown-linux-gnu/include/quickjs-libengine.h +8 -0
  168. package/build/x86_64-unknown-linux-gnu/include/quickjs-libpointer.h +9 -0
  169. package/build/x86_64-unknown-linux-gnu/include/quickjs-modulesys.h +68 -0
  170. package/build/x86_64-unknown-linux-gnu/include/quickjs-print.h +9 -0
  171. package/build/x86_64-unknown-linux-gnu/include/quickjs-utils.h +49 -0
  172. package/build/x86_64-unknown-linux-gnu/include/quickjs.h +1195 -0
  173. package/build/x86_64-unknown-linux-gnu/lib/quickjs-core.a +0 -0
  174. package/build/x86_64-unknown-linux-gnu/lib/quickjs-full.a +0 -0
  175. package/build/x86_64-unknown-linux-musl/bin/qjs +0 -0
  176. package/build/x86_64-unknown-linux-musl/bin/qjsbootstrap +0 -0
  177. package/build/x86_64-unknown-linux-musl/bin/qjsbootstrap-bytecode +0 -0
  178. package/build/x86_64-unknown-linux-musl/bin/qjsc +0 -0
  179. package/build/x86_64-unknown-linux-musl/bin/quickjs-run +0 -0
  180. package/build/x86_64-unknown-linux-musl/extras/is-stdin-a-tty +0 -0
  181. package/build/x86_64-unknown-linux-musl/extras/run-test262 +0 -0
  182. package/build/x86_64-unknown-linux-musl/extras/sample-program/sum +0 -0
  183. package/build/x86_64-unknown-linux-musl/extras/stack-limit-test +0 -0
  184. package/build/x86_64-unknown-linux-musl/include/quickjs-full-init.h +19 -0
  185. package/build/x86_64-unknown-linux-musl/include/quickjs-inspect.h +9 -0
  186. package/build/x86_64-unknown-linux-musl/include/quickjs-intervals.h +9 -0
  187. package/build/x86_64-unknown-linux-musl/include/quickjs-libbytecode.h +8 -0
  188. package/build/x86_64-unknown-linux-musl/include/quickjs-libc.h +65 -0
  189. package/build/x86_64-unknown-linux-musl/include/quickjs-libcontext.h +8 -0
  190. package/build/x86_64-unknown-linux-musl/include/quickjs-libencoding.h +8 -0
  191. package/build/x86_64-unknown-linux-musl/include/quickjs-libengine.h +8 -0
  192. package/build/x86_64-unknown-linux-musl/include/quickjs-libpointer.h +9 -0
  193. package/build/x86_64-unknown-linux-musl/include/quickjs-modulesys.h +68 -0
  194. package/build/x86_64-unknown-linux-musl/include/quickjs-print.h +9 -0
  195. package/build/x86_64-unknown-linux-musl/include/quickjs-utils.h +49 -0
  196. package/build/x86_64-unknown-linux-musl/include/quickjs.h +1195 -0
  197. package/build/x86_64-unknown-linux-musl/lib/quickjs-core.a +0 -0
  198. package/build/x86_64-unknown-linux-musl/lib/quickjs-full.a +0 -0
  199. package/build/x86_64-unknown-linux-static/bin/qjs +0 -0
  200. package/build/x86_64-unknown-linux-static/bin/qjsbootstrap +0 -0
  201. package/build/x86_64-unknown-linux-static/bin/qjsbootstrap-bytecode +0 -0
  202. package/build/x86_64-unknown-linux-static/bin/qjsc +0 -0
  203. package/build/x86_64-unknown-linux-static/bin/quickjs-run +0 -0
  204. package/build/x86_64-unknown-linux-static/extras/is-stdin-a-tty +0 -0
  205. package/build/x86_64-unknown-linux-static/extras/run-test262 +0 -0
  206. package/build/x86_64-unknown-linux-static/extras/sample-program/sum +0 -0
  207. package/build/x86_64-unknown-linux-static/extras/stack-limit-test +0 -0
  208. package/build/x86_64-unknown-linux-static/include/quickjs-full-init.h +19 -0
  209. package/build/x86_64-unknown-linux-static/include/quickjs-inspect.h +9 -0
  210. package/build/x86_64-unknown-linux-static/include/quickjs-intervals.h +9 -0
  211. package/build/x86_64-unknown-linux-static/include/quickjs-libbytecode.h +8 -0
  212. package/build/x86_64-unknown-linux-static/include/quickjs-libc.h +65 -0
  213. package/build/x86_64-unknown-linux-static/include/quickjs-libcontext.h +8 -0
  214. package/build/x86_64-unknown-linux-static/include/quickjs-libencoding.h +8 -0
  215. package/build/x86_64-unknown-linux-static/include/quickjs-libengine.h +8 -0
  216. package/build/x86_64-unknown-linux-static/include/quickjs-libpointer.h +9 -0
  217. package/build/x86_64-unknown-linux-static/include/quickjs-modulesys.h +68 -0
  218. package/build/x86_64-unknown-linux-static/include/quickjs-print.h +9 -0
  219. package/build/x86_64-unknown-linux-static/include/quickjs-utils.h +49 -0
  220. package/build/x86_64-unknown-linux-static/include/quickjs.h +1195 -0
  221. package/build/x86_64-unknown-linux-static/lib/quickjs-core.a +0 -0
  222. package/build/x86_64-unknown-linux-static/lib/quickjs-full.a +0 -0
  223. package/npm/platforms.json +1 -1
  224. package/package.json +2 -2
  225. /package/build/dts/{inspect.d.ts → quickjs-inspect.d.ts} +0 -0
package/README.md CHANGED
@@ -59,7 +59,6 @@ Fork of the fantastic QuickJS engine by Fabrice Bellard, with many changes.
59
59
  - Most module-loading-related code was moved into `quickjs-modulesys`.
60
60
  - `setTimeout` and `clearTimeout` are now available as globals (previously they were only available as exports).
61
61
  - `setInterval` and `clearInterval` are added, available as globals.
62
- - `String.dedent` added (template tag function, like the proposed [String.dedent](https://github.com/tc39/proposal-string-dedent)).
63
62
  - Several C-side helper functions were moved out of quickjs-libc and into quickjs-utils.
64
63
  - Most module-related code (setting import.meta, etc) was moved into quickjs-modulesys.
65
64
  - Added `std.setExitCode`, `std.getExitCode`, and made `std.exit`'s parameter optional. The value passed to `std.setExitCode` will be used when the process exits normally, or when `std.exit` is called without any arguments. `std.setExitCode`, `std.getExitCode`, and `std.exit` throw if called from a thread other than the main thread (ie. a Worker).
@@ -206,6 +205,10 @@ To compile binaries for Linux, macOS, iOS, and Windows (using Docker):
206
205
  Or, to compile binaries for just your own unix system:
207
206
 
208
207
  - Make sure you have both [Ninja](https://ninja-build.org/) and [Node.js](https://nodejs.org/) installed. I use Ninja 1.10.1 and Node.js 18.18.0, but it should work with most versions of both of those.
208
+ - Make sure you have [bash](https://www.gnu.org/software/bash/) 4 or higher.
209
+
210
+ > Almost all modern Linux systems have bash 5, but macOS still has bash 3. To get a newer version of bash on macOS, install either [Homebrew](https://brew.sh/) or [MacPorts](https://www.macports.org/) (your preference), then run `brew install bash` or `sudo port install bash`, respectively. You may also need to ensure your shell's [PATH environment variable](https://superuser.com/a/284351) is set correctly; running `which bash` should print the location of the _newer_ bash binary, installed by Homebrew/MacPorts.
211
+
209
212
  - Clone the repo and cd to its folder
210
213
  - Run `meta/build.sh`
211
214
  - Build artifacts will be placed in the `build` folder. You're probably most interested in stuff in the `build/bin` and `build/lib` folders.
Binary file
Binary file
@@ -0,0 +1,19 @@
1
+ #ifndef QUICKJS_FULL_INIT_H
2
+ #define QUICKJS_FULL_INIT_H
3
+
4
+ #include "quickjs.h"
5
+ #include "quickjs-print.h"
6
+ #include "quickjs-inspect.h"
7
+ #include "quickjs-intervals.h"
8
+ #include "quickjs-libc.h"
9
+ #include "quickjs-libbytecode.h"
10
+ #include "quickjs-libcontext.h"
11
+ #include "quickjs-libpointer.h"
12
+ #include "quickjs-modulesys.h"
13
+ #include "quickjs-libengine.h"
14
+ #include "quickjs-libencoding.h"
15
+
16
+ /* returns 0 on success, nonzero on failure */
17
+ int quickjs_full_init(JSContext *ctx);
18
+
19
+ #endif /* ifndef QUICKJS_FULL_INIT_H */
@@ -0,0 +1,9 @@
1
+ #ifndef QUICKJS_INSPECT_H
2
+ #define QUICKJS_INSPECT_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ /* Adds 'inspect' global */
7
+ int js_inspect_add_inspect_global(JSContext *ctx);
8
+
9
+ #endif /* ifndef QUICKJS_INSPECT_H */
@@ -0,0 +1,9 @@
1
+ #ifndef QUICKJS_INTERVALS_H
2
+ #define QUICKJS_INTERVALS_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ /* Adds 'setInterval' and 'clearInterval' globals */
7
+ int js_intervals_add_setInterval_clearInterval_globals(JSContext *ctx);
8
+
9
+ #endif /* ifndef QUICKJS_INTERVALS_H */
@@ -0,0 +1,8 @@
1
+ #ifndef QUICKJS_LIBBYTECODE_H
2
+ #define QUICKJS_LIBBYTECODE_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ JSModuleDef *js_init_module_bytecode(JSContext *ctx, const char *module_name);
7
+
8
+ #endif /* ifndef QUICKJS_LIBBYTECODE_H */
@@ -0,0 +1,65 @@
1
+ /*
2
+ * QuickJS C library
3
+ *
4
+ * Copyright (c) 2017-2018 Fabrice Bellard
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ * THE SOFTWARE.
23
+ */
24
+ #ifndef QUICKJS_LIBC_H
25
+ #define QUICKJS_LIBC_H
26
+
27
+ #include <stdio.h>
28
+ #include <stdlib.h>
29
+
30
+ #include "quickjs.h"
31
+
32
+ #ifdef __cplusplus
33
+ extern "C"
34
+ {
35
+ #endif
36
+
37
+ JSModuleDef *js_init_module_std(JSContext *ctx, const char *module_name);
38
+ JSModuleDef *js_init_module_os(JSContext *ctx, const char *module_name);
39
+
40
+ /*
41
+ Creates 'scriptArgs' and 'setTimeout'.
42
+ */
43
+ void js_std_add_helpers(JSContext *ctx, int argc, char **argv);
44
+
45
+ /* Creates 'scriptArgs' global */
46
+ void js_std_add_scriptArgs(JSContext *ctx, int argc, char **argv);
47
+
48
+ /* Creates 'setTimeout' and 'clearTimeout' globals */
49
+ void js_std_add_timeout(JSContext *ctx);
50
+
51
+ JS_BOOL js_std_is_main_thread(JSRuntime *rt);
52
+ void js_std_interrupt_handler_start(JSContext *ctx);
53
+ void js_std_interrupt_handler_finish(JSContext *ctx, JSValue ret);
54
+
55
+ /* returns the exit status code */
56
+ int js_std_loop(JSContext *ctx);
57
+ void js_std_init_handlers(JSRuntime *rt);
58
+ void js_std_free_handlers(JSRuntime *rt);
59
+ void js_std_set_worker_new_context_func(JSContext *(*func)(JSRuntime *rt));
60
+
61
+ #ifdef __cplusplus
62
+ } /* extern "C" { */
63
+ #endif
64
+
65
+ #endif /* QUICKJS_LIBC_H */
@@ -0,0 +1,8 @@
1
+ #ifndef QUICKJS_LIBCONTEXT_H
2
+ #define QUICKJS_LIBCONTEXT_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ JSModuleDef *js_init_module_context(JSContext *ctx, const char *module_name);
7
+
8
+ #endif /* ifndef QUICKJS_LIBCONTEXT_H */
@@ -0,0 +1,8 @@
1
+ #ifndef QUICKJS_LIBENCODING_H
2
+ #define QUICKJS_LIBENCODING_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ JSModuleDef *js_init_module_encoding(JSContext *ctx, const char *module_name);
7
+
8
+ #endif /* ifndef QUICKJS_LIBENCODING_H */
@@ -0,0 +1,8 @@
1
+ #ifndef QUICKJS_LIBENGINE_H
2
+ #define QUICKJS_LIBENGINE_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ JSModuleDef *js_init_module_engine(JSContext *ctx, const char *module_name);
7
+
8
+ #endif /* ifndef QUICKJS_LIBENGINE_H */
@@ -0,0 +1,9 @@
1
+ #ifndef QUICKJS_LIBPOINTER_H
2
+ #define QUICKJS_LIBPOINTER_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ JSModuleDef *js_init_module_pointer(JSContext *ctx, const char *module_name);
7
+ JSValue js_new_pointer(JSContext *ctx, void *value);
8
+
9
+ #endif /* ifndef QUICKJS_LIBPOINTER_H */
@@ -0,0 +1,68 @@
1
+ #ifndef QUICKJS_MODULESYS_H
2
+ #define QUICKJS_MODULESYS_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ typedef struct QJMS_State QJMS_State;
7
+
8
+ /*
9
+ initialize and register the module loader system.
10
+ call both this (once per runtime) AND QJMS_InitContext (once per context).
11
+ */
12
+ void QJMS_InitState(JSRuntime *rt);
13
+
14
+ /*
15
+ initialize and register the module loader system.
16
+ call both this (once per context) AND QJMS_InitState (once per runtime).
17
+ */
18
+ void QJMS_InitContext(JSContext *ctx);
19
+
20
+ /* free resources allocated by the module loader system */
21
+ void QJMS_FreeState(JSRuntime *rt);
22
+
23
+ /*
24
+ Affects the value of import.meta.main.
25
+ */
26
+ void QJMS_SetMainModule(JSRuntime *rt, const char *module_name);
27
+
28
+ /*
29
+ Check if import.meta.main would be true for this module.
30
+ */
31
+ JS_BOOL QJMS_IsMainModule(JSRuntime *rt, const char *module_name);
32
+
33
+ /* initializes the import.meta object for the provided module function */
34
+ int QJMS_SetModuleImportMeta(JSContext *ctx, JSValueConst func_val);
35
+
36
+ /*
37
+ returns 0 on success, nonzero on error.
38
+ in case of error, prints error to stderr before returning.
39
+ */
40
+ int QJMS_EvalBuf(JSContext *ctx, const void *buf, int buf_len,
41
+ const char *filename, int eval_flags);
42
+
43
+ /*
44
+ module can be -1 for autodetect.
45
+ returns 0 on success, nonzero on error.
46
+ in case of error, prints error to stderr before returning.
47
+ */
48
+ int QJMS_EvalFile(JSContext *ctx, const char *filename, int module);
49
+
50
+ /*
51
+ returns 0 on success, nonzero on error.
52
+ in case of error, prints error to stderr before returning.
53
+ */
54
+ int QJMS_EvalBinary(JSContext *ctx, const uint8_t *buf, size_t buf_len,
55
+ int load_only);
56
+
57
+ /* the internal behavior of the 'require' function, exposed as a C API */
58
+ JSValue QJMS_Require(JSContext *ctx, JSValueConst specifier);
59
+ JSValue QJMS_Require2(JSContext *ctx, JSValueConst specifier, JSValueConst basename);
60
+
61
+ /* the internal behavior of the 'require.resolve' function, exposed as a C API */
62
+ JSValue QJMS_RequireResolve(JSContext *ctx, JSValueConst specifier_val);
63
+ JSValue QJMS_RequireResolve2(JSContext *ctx, JSValueConst specifier_val, JSAtom basename_atom);
64
+
65
+ /* returns an object like { require: Function, ModuleDelegate: Object } */
66
+ JSValue QJMS_GetModuleLoaderInternals(JSContext *ctx);
67
+
68
+ #endif /* ifndef QUICKJS_MODULESYS_H */
@@ -0,0 +1,9 @@
1
+ #ifndef QUICKJS_PRINT_H
2
+ #define QUICKJS_PRINT_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ void js_print_add_print_global(JSContext *ctx);
7
+ void js_print_add_console_global(JSContext *ctx);
8
+
9
+ #endif /* ifndef QUICKJS_PRINT_H */
@@ -0,0 +1,49 @@
1
+ #ifndef QUICKJS_UTILS_H
2
+ #define QUICKJS_UTILS_H
3
+
4
+ #include "quickjs.h"
5
+
6
+ typedef struct QJUForEachPropertyState
7
+ {
8
+ uint32_t len;
9
+ uint32_t i;
10
+ JSPropertyEnum *tab;
11
+ JSAtom key;
12
+ JSValue val;
13
+ } QJUForEachPropertyState;
14
+
15
+ /* free using QJU_FreeForEachPropertyState */
16
+ QJUForEachPropertyState *QJU_NewForEachPropertyState(JSContext *ctx, JSValue obj, int flags);
17
+
18
+ // put a block after this invocation; it will be run once per property
19
+ #define QJU_ForEachProperty(ctx, state) \
20
+ for (state->i = 0; state->i < state->len; state->i++)
21
+
22
+ // fills in `state` with data for the current property.
23
+ // return value will be JS_EXCEPTION if an exception was thrown, or JS_UNDEFINED otherwise.
24
+ // you must JS_DupValue `state->val` if you wanna keep it around.
25
+ JSValue QJU_ForEachProperty_Read(JSContext *ctx, JSValue obj, QJUForEachPropertyState *state);
26
+
27
+ void QJU_FreeForEachPropertyState(JSContext *ctx, QJUForEachPropertyState *state);
28
+
29
+ /* reads the contents of the file at `filename` into a buffer. */
30
+ uint8_t *QJU_ReadFile(JSContext *ctx, size_t *pbuf_len, const char *filename);
31
+
32
+ /*
33
+ prints `exception_val` to `f`. If `exception_val` is an Error,
34
+ it gets printed nicely.
35
+ */
36
+ void QJU_PrintError(JSContext *ctx, FILE *f, JSValueConst exception_val);
37
+
38
+ /*
39
+ prints the context's current exception to `f`.
40
+ this calls JS_GetException, so the exception will be cleared.
41
+ */
42
+ void QJU_PrintException(JSContext *ctx, FILE *f);
43
+
44
+ /* an unhandled promise rejection handler suitable for passing into JS_SetHostPromiseRejectionTracker */
45
+ void QJU_PrintPromiseRejection(JSContext *ctx, JSValueConst promise,
46
+ JSValueConst reason, JS_BOOL is_handled,
47
+ void *opaque);
48
+
49
+ #endif /* ifndef QUICKJS_UTILS_H */