quickjs 0.1.2

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 (36) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE +21 -0
  4. data/Rakefile +22 -0
  5. data/ext/quickjsrb/extconf.rb +45 -0
  6. data/ext/quickjsrb/quickjs/LICENSE +22 -0
  7. data/ext/quickjsrb/quickjs/cutils.c +631 -0
  8. data/ext/quickjsrb/quickjs/cutils.h +347 -0
  9. data/ext/quickjsrb/quickjs/libbf.c +8475 -0
  10. data/ext/quickjsrb/quickjs/libbf.h +535 -0
  11. data/ext/quickjsrb/quickjs/libregexp-opcode.h +57 -0
  12. data/ext/quickjsrb/quickjs/libregexp.c +2501 -0
  13. data/ext/quickjsrb/quickjs/libregexp.h +55 -0
  14. data/ext/quickjsrb/quickjs/libunicode-table.h +4557 -0
  15. data/ext/quickjsrb/quickjs/libunicode.c +1910 -0
  16. data/ext/quickjsrb/quickjs/libunicode.h +182 -0
  17. data/ext/quickjsrb/quickjs/list.h +99 -0
  18. data/ext/quickjsrb/quickjs/qjs.c +564 -0
  19. data/ext/quickjsrb/quickjs/qjsc.c +761 -0
  20. data/ext/quickjsrb/quickjs/qjscalc.c +4005 -0
  21. data/ext/quickjsrb/quickjs/quickjs-atom.h +273 -0
  22. data/ext/quickjsrb/quickjs/quickjs-libc.c +4052 -0
  23. data/ext/quickjsrb/quickjs/quickjs-libc.h +60 -0
  24. data/ext/quickjsrb/quickjs/quickjs-opcode.h +372 -0
  25. data/ext/quickjsrb/quickjs/quickjs.c +55978 -0
  26. data/ext/quickjsrb/quickjs/quickjs.h +1087 -0
  27. data/ext/quickjsrb/quickjs/repl.c +2057 -0
  28. data/ext/quickjsrb/quickjs/run-test262.c +2216 -0
  29. data/ext/quickjsrb/quickjs/unicode_gen.c +3225 -0
  30. data/ext/quickjsrb/quickjs/unicode_gen_def.h +291 -0
  31. data/ext/quickjsrb/quickjsrb.c +105 -0
  32. data/ext/quickjsrb/quickjsrb.h +14 -0
  33. data/lib/quickjs/version.rb +5 -0
  34. data/lib/quickjs.rb +28 -0
  35. data/sig/quickjs.rbs +4 -0
  36. metadata +81 -0
@@ -0,0 +1,291 @@
1
+ #ifdef UNICODE_GENERAL_CATEGORY
2
+ DEF(Cn, "Unassigned") /* must be zero */
3
+ DEF(Lu, "Uppercase_Letter")
4
+ DEF(Ll, "Lowercase_Letter")
5
+ DEF(Lt, "Titlecase_Letter")
6
+ DEF(Lm, "Modifier_Letter")
7
+ DEF(Lo, "Other_Letter")
8
+ DEF(Mn, "Nonspacing_Mark")
9
+ DEF(Mc, "Spacing_Mark")
10
+ DEF(Me, "Enclosing_Mark")
11
+ DEF(Nd, "Decimal_Number,digit")
12
+ DEF(Nl, "Letter_Number")
13
+ DEF(No, "Other_Number")
14
+ DEF(Sm, "Math_Symbol")
15
+ DEF(Sc, "Currency_Symbol")
16
+ DEF(Sk, "Modifier_Symbol")
17
+ DEF(So, "Other_Symbol")
18
+ DEF(Pc, "Connector_Punctuation")
19
+ DEF(Pd, "Dash_Punctuation")
20
+ DEF(Ps, "Open_Punctuation")
21
+ DEF(Pe, "Close_Punctuation")
22
+ DEF(Pi, "Initial_Punctuation")
23
+ DEF(Pf, "Final_Punctuation")
24
+ DEF(Po, "Other_Punctuation")
25
+ DEF(Zs, "Space_Separator")
26
+ DEF(Zl, "Line_Separator")
27
+ DEF(Zp, "Paragraph_Separator")
28
+ DEF(Cc, "Control,cntrl")
29
+ DEF(Cf, "Format")
30
+ DEF(Cs, "Surrogate")
31
+ DEF(Co, "Private_Use")
32
+ /* synthetic properties */
33
+ DEF(LC, "Cased_Letter")
34
+ DEF(L, "Letter")
35
+ DEF(M, "Mark,Combining_Mark")
36
+ DEF(N, "Number")
37
+ DEF(S, "Symbol")
38
+ DEF(P, "Punctuation,punct")
39
+ DEF(Z, "Separator")
40
+ DEF(C, "Other")
41
+ #endif
42
+
43
+ #ifdef UNICODE_SCRIPT
44
+ /* scripts aliases names in PropertyValueAliases.txt */
45
+ DEF(Unknown, "Zzzz")
46
+ DEF(Adlam, "Adlm")
47
+ DEF(Ahom, "Ahom")
48
+ DEF(Anatolian_Hieroglyphs, "Hluw")
49
+ DEF(Arabic, "Arab")
50
+ DEF(Armenian, "Armn")
51
+ DEF(Avestan, "Avst")
52
+ DEF(Balinese, "Bali")
53
+ DEF(Bamum, "Bamu")
54
+ DEF(Bassa_Vah, "Bass")
55
+ DEF(Batak, "Batk")
56
+ DEF(Bengali, "Beng")
57
+ DEF(Bhaiksuki, "Bhks")
58
+ DEF(Bopomofo, "Bopo")
59
+ DEF(Brahmi, "Brah")
60
+ DEF(Braille, "Brai")
61
+ DEF(Buginese, "Bugi")
62
+ DEF(Buhid, "Buhd")
63
+ DEF(Canadian_Aboriginal, "Cans")
64
+ DEF(Carian, "Cari")
65
+ DEF(Caucasian_Albanian, "Aghb")
66
+ DEF(Chakma, "Cakm")
67
+ DEF(Cham, "Cham")
68
+ DEF(Cherokee, "Cher")
69
+ DEF(Chorasmian, "Chrs")
70
+ DEF(Common, "Zyyy")
71
+ DEF(Coptic, "Copt,Qaac")
72
+ DEF(Cuneiform, "Xsux")
73
+ DEF(Cypriot, "Cprt")
74
+ DEF(Cyrillic, "Cyrl")
75
+ DEF(Cypro_Minoan, "Cpmn")
76
+ DEF(Deseret, "Dsrt")
77
+ DEF(Devanagari, "Deva")
78
+ DEF(Dives_Akuru, "Diak")
79
+ DEF(Dogra, "Dogr")
80
+ DEF(Duployan, "Dupl")
81
+ DEF(Egyptian_Hieroglyphs, "Egyp")
82
+ DEF(Elbasan, "Elba")
83
+ DEF(Elymaic, "Elym")
84
+ DEF(Ethiopic, "Ethi")
85
+ DEF(Georgian, "Geor")
86
+ DEF(Glagolitic, "Glag")
87
+ DEF(Gothic, "Goth")
88
+ DEF(Grantha, "Gran")
89
+ DEF(Greek, "Grek")
90
+ DEF(Gujarati, "Gujr")
91
+ DEF(Gunjala_Gondi, "Gong")
92
+ DEF(Gurmukhi, "Guru")
93
+ DEF(Han, "Hani")
94
+ DEF(Hangul, "Hang")
95
+ DEF(Hanifi_Rohingya, "Rohg")
96
+ DEF(Hanunoo, "Hano")
97
+ DEF(Hatran, "Hatr")
98
+ DEF(Hebrew, "Hebr")
99
+ DEF(Hiragana, "Hira")
100
+ DEF(Imperial_Aramaic, "Armi")
101
+ DEF(Inherited, "Zinh,Qaai")
102
+ DEF(Inscriptional_Pahlavi, "Phli")
103
+ DEF(Inscriptional_Parthian, "Prti")
104
+ DEF(Javanese, "Java")
105
+ DEF(Kaithi, "Kthi")
106
+ DEF(Kannada, "Knda")
107
+ DEF(Katakana, "Kana")
108
+ DEF(Kawi, "Kawi")
109
+ DEF(Kayah_Li, "Kali")
110
+ DEF(Kharoshthi, "Khar")
111
+ DEF(Khmer, "Khmr")
112
+ DEF(Khojki, "Khoj")
113
+ DEF(Khitan_Small_Script, "Kits")
114
+ DEF(Khudawadi, "Sind")
115
+ DEF(Lao, "Laoo")
116
+ DEF(Latin, "Latn")
117
+ DEF(Lepcha, "Lepc")
118
+ DEF(Limbu, "Limb")
119
+ DEF(Linear_A, "Lina")
120
+ DEF(Linear_B, "Linb")
121
+ DEF(Lisu, "Lisu")
122
+ DEF(Lycian, "Lyci")
123
+ DEF(Lydian, "Lydi")
124
+ DEF(Makasar, "Maka")
125
+ DEF(Mahajani, "Mahj")
126
+ DEF(Malayalam, "Mlym")
127
+ DEF(Mandaic, "Mand")
128
+ DEF(Manichaean, "Mani")
129
+ DEF(Marchen, "Marc")
130
+ DEF(Masaram_Gondi, "Gonm")
131
+ DEF(Medefaidrin, "Medf")
132
+ DEF(Meetei_Mayek, "Mtei")
133
+ DEF(Mende_Kikakui, "Mend")
134
+ DEF(Meroitic_Cursive, "Merc")
135
+ DEF(Meroitic_Hieroglyphs, "Mero")
136
+ DEF(Miao, "Plrd")
137
+ DEF(Modi, "Modi")
138
+ DEF(Mongolian, "Mong")
139
+ DEF(Mro, "Mroo")
140
+ DEF(Multani, "Mult")
141
+ DEF(Myanmar, "Mymr")
142
+ DEF(Nabataean, "Nbat")
143
+ DEF(Nag_Mundari, "Nagm")
144
+ DEF(Nandinagari, "Nand")
145
+ DEF(New_Tai_Lue, "Talu")
146
+ DEF(Newa, "Newa")
147
+ DEF(Nko, "Nkoo")
148
+ DEF(Nushu, "Nshu")
149
+ DEF(Nyiakeng_Puachue_Hmong, "Hmnp")
150
+ DEF(Ogham, "Ogam")
151
+ DEF(Ol_Chiki, "Olck")
152
+ DEF(Old_Hungarian, "Hung")
153
+ DEF(Old_Italic, "Ital")
154
+ DEF(Old_North_Arabian, "Narb")
155
+ DEF(Old_Permic, "Perm")
156
+ DEF(Old_Persian, "Xpeo")
157
+ DEF(Old_Sogdian, "Sogo")
158
+ DEF(Old_South_Arabian, "Sarb")
159
+ DEF(Old_Turkic, "Orkh")
160
+ DEF(Old_Uyghur, "Ougr")
161
+ DEF(Oriya, "Orya")
162
+ DEF(Osage, "Osge")
163
+ DEF(Osmanya, "Osma")
164
+ DEF(Pahawh_Hmong, "Hmng")
165
+ DEF(Palmyrene, "Palm")
166
+ DEF(Pau_Cin_Hau, "Pauc")
167
+ DEF(Phags_Pa, "Phag")
168
+ DEF(Phoenician, "Phnx")
169
+ DEF(Psalter_Pahlavi, "Phlp")
170
+ DEF(Rejang, "Rjng")
171
+ DEF(Runic, "Runr")
172
+ DEF(Samaritan, "Samr")
173
+ DEF(Saurashtra, "Saur")
174
+ DEF(Sharada, "Shrd")
175
+ DEF(Shavian, "Shaw")
176
+ DEF(Siddham, "Sidd")
177
+ DEF(SignWriting, "Sgnw")
178
+ DEF(Sinhala, "Sinh")
179
+ DEF(Sogdian, "Sogd")
180
+ DEF(Sora_Sompeng, "Sora")
181
+ DEF(Soyombo, "Soyo")
182
+ DEF(Sundanese, "Sund")
183
+ DEF(Syloti_Nagri, "Sylo")
184
+ DEF(Syriac, "Syrc")
185
+ DEF(Tagalog, "Tglg")
186
+ DEF(Tagbanwa, "Tagb")
187
+ DEF(Tai_Le, "Tale")
188
+ DEF(Tai_Tham, "Lana")
189
+ DEF(Tai_Viet, "Tavt")
190
+ DEF(Takri, "Takr")
191
+ DEF(Tamil, "Taml")
192
+ DEF(Tangut, "Tang")
193
+ DEF(Telugu, "Telu")
194
+ DEF(Thaana, "Thaa")
195
+ DEF(Thai, "Thai")
196
+ DEF(Tibetan, "Tibt")
197
+ DEF(Tifinagh, "Tfng")
198
+ DEF(Tirhuta, "Tirh")
199
+ DEF(Tangsa, "Tnsa")
200
+ DEF(Toto, "Toto")
201
+ DEF(Ugaritic, "Ugar")
202
+ DEF(Vai, "Vaii")
203
+ DEF(Vithkuqi, "Vith")
204
+ DEF(Wancho, "Wcho")
205
+ DEF(Warang_Citi, "Wara")
206
+ DEF(Yezidi, "Yezi")
207
+ DEF(Yi, "Yiii")
208
+ DEF(Zanabazar_Square, "Zanb")
209
+ #endif
210
+
211
+ #ifdef UNICODE_PROP_LIST
212
+ /* Prop list not exported to regexp */
213
+ DEF(Hyphen, "")
214
+ DEF(Other_Math, "")
215
+ DEF(Other_Alphabetic, "")
216
+ DEF(Other_Lowercase, "")
217
+ DEF(Other_Uppercase, "")
218
+ DEF(Other_Grapheme_Extend, "")
219
+ DEF(Other_Default_Ignorable_Code_Point, "")
220
+ DEF(Other_ID_Start, "")
221
+ DEF(Other_ID_Continue, "")
222
+ DEF(Prepended_Concatenation_Mark, "")
223
+ /* additional computed properties for smaller tables */
224
+ DEF(ID_Continue1, "")
225
+ DEF(XID_Start1, "")
226
+ DEF(XID_Continue1, "")
227
+ DEF(Changes_When_Titlecased1, "")
228
+ DEF(Changes_When_Casefolded1, "")
229
+ DEF(Changes_When_NFKC_Casefolded1, "")
230
+
231
+ /* Prop list exported to JS */
232
+ DEF(ASCII_Hex_Digit, "AHex")
233
+ DEF(Bidi_Control, "Bidi_C")
234
+ DEF(Dash, "")
235
+ DEF(Deprecated, "Dep")
236
+ DEF(Diacritic, "Dia")
237
+ DEF(Extender, "Ext")
238
+ DEF(Hex_Digit, "Hex")
239
+ DEF(IDS_Binary_Operator, "IDSB")
240
+ DEF(IDS_Trinary_Operator, "IDST")
241
+ DEF(Ideographic, "Ideo")
242
+ DEF(Join_Control, "Join_C")
243
+ DEF(Logical_Order_Exception, "LOE")
244
+ DEF(Noncharacter_Code_Point, "NChar")
245
+ DEF(Pattern_Syntax, "Pat_Syn")
246
+ DEF(Pattern_White_Space, "Pat_WS")
247
+ DEF(Quotation_Mark, "QMark")
248
+ DEF(Radical, "")
249
+ DEF(Regional_Indicator, "RI")
250
+ DEF(Sentence_Terminal, "STerm")
251
+ DEF(Soft_Dotted, "SD")
252
+ DEF(Terminal_Punctuation, "Term")
253
+ DEF(Unified_Ideograph, "UIdeo")
254
+ DEF(Variation_Selector, "VS")
255
+ DEF(White_Space, "space")
256
+ DEF(Bidi_Mirrored, "Bidi_M")
257
+ DEF(Emoji, "")
258
+ DEF(Emoji_Component, "EComp")
259
+ DEF(Emoji_Modifier, "EMod")
260
+ DEF(Emoji_Modifier_Base, "EBase")
261
+ DEF(Emoji_Presentation, "EPres")
262
+ DEF(Extended_Pictographic, "ExtPict")
263
+ DEF(Default_Ignorable_Code_Point, "DI")
264
+ DEF(ID_Start, "IDS")
265
+ DEF(Case_Ignorable, "CI")
266
+
267
+ /* other binary properties */
268
+ DEF(ASCII,"")
269
+ DEF(Alphabetic, "Alpha")
270
+ DEF(Any, "")
271
+ DEF(Assigned,"")
272
+ DEF(Cased, "")
273
+ DEF(Changes_When_Casefolded, "CWCF")
274
+ DEF(Changes_When_Casemapped, "CWCM")
275
+ DEF(Changes_When_Lowercased, "CWL")
276
+ DEF(Changes_When_NFKC_Casefolded, "CWKCF")
277
+ DEF(Changes_When_Titlecased, "CWT")
278
+ DEF(Changes_When_Uppercased, "CWU")
279
+ DEF(Grapheme_Base, "Gr_Base")
280
+ DEF(Grapheme_Extend, "Gr_Ext")
281
+ DEF(ID_Continue, "IDC")
282
+ DEF(Lowercase, "Lower")
283
+ DEF(Math, "")
284
+ DEF(Uppercase, "Upper")
285
+ DEF(XID_Continue, "XIDC")
286
+ DEF(XID_Start, "XIDS")
287
+
288
+ /* internal tables with index */
289
+ DEF(Cased1, "")
290
+
291
+ #endif
@@ -0,0 +1,105 @@
1
+ #include "quickjsrb.h"
2
+
3
+ VALUE rb_mQuickjs;
4
+ VALUE rb_mQuickjsValue;
5
+ const char *undefinedId = "undefined";
6
+ const char *nanId = "NaN";
7
+
8
+ VALUE rb_module_eval_js_code(
9
+ VALUE klass,
10
+ VALUE r_code,
11
+ VALUE r_memoryLimit,
12
+ VALUE r_maxStackSize,
13
+ VALUE r_enableStd,
14
+ VALUE r_enableOs
15
+ ) {
16
+ JSRuntime *rt = JS_NewRuntime();
17
+ JSContext *ctx = JS_NewContext(rt);
18
+
19
+ JS_SetMemoryLimit(rt, NUM2UINT(r_memoryLimit));
20
+ JS_SetMaxStackSize(rt, NUM2UINT(r_maxStackSize));
21
+
22
+ JS_AddIntrinsicBigFloat(ctx);
23
+ JS_AddIntrinsicBigDecimal(ctx);
24
+ JS_AddIntrinsicOperators(ctx);
25
+ JS_EnableBignumExt(ctx, TRUE);
26
+
27
+ JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL);
28
+ js_std_add_helpers(ctx, 0, NULL);
29
+
30
+ js_std_init_handlers(rt);
31
+ if (r_enableStd == Qtrue) {
32
+ js_init_module_std(ctx, "std");
33
+ const char *enableStd = "import * as std from 'std';\n"
34
+ "globalThis.std = std;\n";
35
+ JSValue stdEval = JS_Eval(ctx, enableStd, strlen(enableStd), "<code>", JS_EVAL_TYPE_MODULE);
36
+ JS_FreeValue(ctx, stdEval);
37
+ }
38
+
39
+ if (r_enableOs == Qtrue) {
40
+ js_init_module_os(ctx, "os");
41
+
42
+ const char *enableOs = "import * as os from 'os';\n"
43
+ "globalThis.os = os;\n";
44
+ JSValue osEval = JS_Eval(ctx, enableOs, strlen(enableOs), "<code>", JS_EVAL_TYPE_MODULE);
45
+ JS_FreeValue(ctx, osEval);
46
+ }
47
+
48
+ char *code = StringValueCStr(r_code);
49
+ JSValue res = JS_Eval(ctx, code, strlen(code), "<code>", JS_EVAL_TYPE_GLOBAL);
50
+
51
+ VALUE result;
52
+ int r = 0;
53
+ if (JS_IsException(res)) {
54
+ rb_raise(rb_eRuntimeError, "Something happened by evaluating as JavaScript code");
55
+ result = Qnil;
56
+ } else if (JS_IsObject(res)) {
57
+ JSValue global = JS_GetGlobalObject(ctx);
58
+ JSValue jsonClass = JS_GetPropertyStr(ctx, global, "JSON");
59
+ JSValue stringifyFunc = JS_GetPropertyStr(ctx, jsonClass, "stringify");
60
+ JSValue strigified = JS_Call(ctx, stringifyFunc, jsonClass, 1, &res);
61
+
62
+ const char *msg = JS_ToCString(ctx, strigified);
63
+ result = rb_str_new2(msg);
64
+
65
+ JS_FreeValue(ctx, global);
66
+ JS_FreeValue(ctx, strigified);
67
+ JS_FreeValue(ctx, stringifyFunc);
68
+ JS_FreeValue(ctx, jsonClass);
69
+ } else if (JS_VALUE_IS_NAN(res)) {
70
+ result = ID2SYM(rb_intern(nanId));
71
+ } else if (JS_IsNumber(res)) {
72
+ JS_ToInt32(ctx, &r, res);
73
+ result = INT2NUM(r);
74
+ } else if (JS_IsString(res)) {
75
+ JSValue maybeString = JS_ToString(ctx, res);
76
+ const char *msg = JS_ToCString(ctx, maybeString);
77
+ result = rb_str_new2(msg);
78
+ } else if (JS_IsBool(res)) {
79
+ result = JS_ToBool(ctx, res) > 0 ? Qtrue : Qfalse;
80
+ } else if (JS_IsUndefined(res)) {
81
+ result = ID2SYM(rb_intern(undefinedId));
82
+ } else if (JS_IsNull(res)) {
83
+ result = Qnil;
84
+ } else {
85
+ result = Qnil;
86
+ }
87
+ JS_FreeValue(ctx, res);
88
+
89
+ js_std_free_handlers(rt);
90
+ JS_FreeContext(ctx);
91
+ JS_FreeRuntime(rt);
92
+
93
+ return result;
94
+ }
95
+
96
+ RUBY_FUNC_EXPORTED void
97
+ Init_quickjsrb(void)
98
+ {
99
+ rb_mQuickjs = rb_define_module("Quickjs");
100
+ rb_define_module_function(rb_mQuickjs, "_evalCode", rb_module_eval_js_code, 5);
101
+
102
+ VALUE valueClass = rb_define_class_under(rb_mQuickjs, "Value", rb_cObject);
103
+ rb_define_const(valueClass, "UNDEFINED", ID2SYM(rb_intern(undefinedId)));
104
+ rb_define_const(valueClass, "NAN", ID2SYM(rb_intern(nanId)));
105
+ }
@@ -0,0 +1,14 @@
1
+ #ifndef QUICKJSRB_H
2
+ #define QUICKJSRB_H 1
3
+
4
+ #include "ruby.h"
5
+
6
+ #include "quickjs.h"
7
+ #include "quickjs-libc.h"
8
+ #include "cutils.h"
9
+
10
+ #include <stdint.h>
11
+ #include <stdio.h>
12
+ #include <string.h>
13
+
14
+ #endif /* QUICKJSRB_H */
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Quickjs
4
+ VERSION = "0.1.2"
5
+ end
data/lib/quickjs.rb ADDED
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "quickjs/version"
4
+ require_relative "quickjs/quickjsrb"
5
+
6
+ module Quickjs
7
+ FEATURE_STD = :std
8
+ FEATURE_OS = :os
9
+
10
+ def evalCode(
11
+ code,
12
+ opts = {
13
+ memoryLimit: nil,
14
+ maxStackSize: nil,
15
+ features: []
16
+ }
17
+ )
18
+
19
+ _evalCode(
20
+ code,
21
+ opts[:memoryLimit] || 1024 * 1024 * 128,
22
+ opts[:maxStackSize] || 1024 * 1024 * 4,
23
+ opts[:features].include?(Quickjs::FEATURE_STD),
24
+ opts[:features].include?(Quickjs::FEATURE_OS),
25
+ )
26
+ end
27
+ module_function :evalCode
28
+ end
data/sig/quickjs.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Quickjs
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: quickjs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - hmsk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-06-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A native wrapper to run QuickJS in Ruby
14
+ email:
15
+ - k.hamasaki@gmail.com
16
+ executables: []
17
+ extensions:
18
+ - ext/quickjsrb/extconf.rb
19
+ extra_rdoc_files: []
20
+ files:
21
+ - CHANGELOG.md
22
+ - LICENSE
23
+ - Rakefile
24
+ - ext/quickjsrb/extconf.rb
25
+ - ext/quickjsrb/quickjs/LICENSE
26
+ - ext/quickjsrb/quickjs/cutils.c
27
+ - ext/quickjsrb/quickjs/cutils.h
28
+ - ext/quickjsrb/quickjs/libbf.c
29
+ - ext/quickjsrb/quickjs/libbf.h
30
+ - ext/quickjsrb/quickjs/libregexp-opcode.h
31
+ - ext/quickjsrb/quickjs/libregexp.c
32
+ - ext/quickjsrb/quickjs/libregexp.h
33
+ - ext/quickjsrb/quickjs/libunicode-table.h
34
+ - ext/quickjsrb/quickjs/libunicode.c
35
+ - ext/quickjsrb/quickjs/libunicode.h
36
+ - ext/quickjsrb/quickjs/list.h
37
+ - ext/quickjsrb/quickjs/qjs.c
38
+ - ext/quickjsrb/quickjs/qjsc.c
39
+ - ext/quickjsrb/quickjs/qjscalc.c
40
+ - ext/quickjsrb/quickjs/quickjs-atom.h
41
+ - ext/quickjsrb/quickjs/quickjs-libc.c
42
+ - ext/quickjsrb/quickjs/quickjs-libc.h
43
+ - ext/quickjsrb/quickjs/quickjs-opcode.h
44
+ - ext/quickjsrb/quickjs/quickjs.c
45
+ - ext/quickjsrb/quickjs/quickjs.h
46
+ - ext/quickjsrb/quickjs/repl.c
47
+ - ext/quickjsrb/quickjs/run-test262.c
48
+ - ext/quickjsrb/quickjs/unicode_gen.c
49
+ - ext/quickjsrb/quickjs/unicode_gen_def.h
50
+ - ext/quickjsrb/quickjsrb.c
51
+ - ext/quickjsrb/quickjsrb.h
52
+ - lib/quickjs.rb
53
+ - lib/quickjs/version.rb
54
+ - sig/quickjs.rbs
55
+ homepage: https://github.com/hmsk/quickjs.rb
56
+ licenses:
57
+ - MIT
58
+ metadata:
59
+ homepage_uri: https://github.com/hmsk/quickjs.rb
60
+ source_code_uri: https://github.com/hmsk/quickjs.rb
61
+ changelog_uri: https://github.com/hmsk/quickjs.rb/blob/main/CHANGELOG.md
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 3.0.0
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirements: []
77
+ rubygems_version: 3.5.9
78
+ signing_key:
79
+ specification_version: 4
80
+ summary: Run binding of QuickJS
81
+ test_files: []