zig-pug 0.3.1 → 0.3.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 (45) hide show
  1. package/binding.gyp +16 -10
  2. package/package.json +4 -3
  3. package/prebuilts/darwin-arm64/libzig-pug.a +0 -0
  4. package/prebuilts/darwin-x64/libzig-pug.a +0 -0
  5. package/prebuilts/linux-arm64/libzig-pug.a +0 -0
  6. package/prebuilts/linux-x64/libzig-pug.a +0 -0
  7. package/prebuilts/win32-x64/zig-pug.lib +0 -0
  8. package/vendor/mujs/COPYING +0 -16
  9. package/vendor/mujs/README +0 -50
  10. package/vendor/mujs/astnames.h +0 -92
  11. package/vendor/mujs/jsarray.c +0 -832
  12. package/vendor/mujs/jsboolean.c +0 -38
  13. package/vendor/mujs/jsbuiltin.c +0 -249
  14. package/vendor/mujs/jscompile.c +0 -1428
  15. package/vendor/mujs/jsdate.c +0 -861
  16. package/vendor/mujs/jsdtoa.c +0 -749
  17. package/vendor/mujs/jserror.c +0 -139
  18. package/vendor/mujs/jsfunction.c +0 -231
  19. package/vendor/mujs/jsgc.c +0 -284
  20. package/vendor/mujs/jsi.h +0 -870
  21. package/vendor/mujs/jsintern.c +0 -137
  22. package/vendor/mujs/jslex.c +0 -878
  23. package/vendor/mujs/jsmath.c +0 -194
  24. package/vendor/mujs/jsnumber.c +0 -198
  25. package/vendor/mujs/jsobject.c +0 -560
  26. package/vendor/mujs/json.c +0 -422
  27. package/vendor/mujs/jsparse.c +0 -1065
  28. package/vendor/mujs/jsproperty.c +0 -341
  29. package/vendor/mujs/jsregexp.c +0 -232
  30. package/vendor/mujs/jsrepr.c +0 -285
  31. package/vendor/mujs/jsrun.c +0 -2096
  32. package/vendor/mujs/jsstate.c +0 -334
  33. package/vendor/mujs/jsstring.c +0 -852
  34. package/vendor/mujs/jsvalue.c +0 -708
  35. package/vendor/mujs/libmujs.a +0 -0
  36. package/vendor/mujs/main.c +0 -396
  37. package/vendor/mujs/mujs.h +0 -253
  38. package/vendor/mujs/one.c +0 -25
  39. package/vendor/mujs/opnames.h +0 -85
  40. package/vendor/mujs/pp.c +0 -980
  41. package/vendor/mujs/regexp.c +0 -1277
  42. package/vendor/mujs/regexp.h +0 -46
  43. package/vendor/mujs/utf.c +0 -305
  44. package/vendor/mujs/utf.h +0 -52
  45. package/vendor/mujs/utfdata.h +0 -2209
@@ -1,560 +0,0 @@
1
- #include "jsi.h"
2
-
3
- static void jsB_new_Object(js_State *J)
4
- {
5
- if (js_isundefined(J, 1) || js_isnull(J, 1))
6
- js_newobject(J);
7
- else
8
- js_pushobject(J, js_toobject(J, 1));
9
- }
10
-
11
- static void jsB_Object(js_State *J)
12
- {
13
- if (js_isundefined(J, 1) || js_isnull(J, 1))
14
- js_newobject(J);
15
- else
16
- js_pushobject(J, js_toobject(J, 1));
17
- }
18
-
19
- static void Op_toString(js_State *J)
20
- {
21
- if (js_isundefined(J, 0))
22
- js_pushliteral(J, "[object Undefined]");
23
- else if (js_isnull(J, 0))
24
- js_pushliteral(J, "[object Null]");
25
- else {
26
- js_Object *self = js_toobject(J, 0);
27
- switch (self->type) {
28
- case JS_COBJECT: js_pushliteral(J, "[object Object]"); break;
29
- case JS_CARRAY: js_pushliteral(J, "[object Array]"); break;
30
- case JS_CFUNCTION: js_pushliteral(J, "[object Function]"); break;
31
- case JS_CSCRIPT: js_pushliteral(J, "[object Function]"); break;
32
- case JS_CCFUNCTION: js_pushliteral(J, "[object Function]"); break;
33
- case JS_CERROR: js_pushliteral(J, "[object Error]"); break;
34
- case JS_CBOOLEAN: js_pushliteral(J, "[object Boolean]"); break;
35
- case JS_CNUMBER: js_pushliteral(J, "[object Number]"); break;
36
- case JS_CSTRING: js_pushliteral(J, "[object String]"); break;
37
- case JS_CREGEXP: js_pushliteral(J, "[object RegExp]"); break;
38
- case JS_CDATE: js_pushliteral(J, "[object Date]"); break;
39
- case JS_CMATH: js_pushliteral(J, "[object Math]"); break;
40
- case JS_CJSON: js_pushliteral(J, "[object JSON]"); break;
41
- case JS_CARGUMENTS: js_pushliteral(J, "[object Arguments]"); break;
42
- case JS_CITERATOR: js_pushliteral(J, "[object Iterator]"); break;
43
- case JS_CUSERDATA:
44
- js_pushliteral(J, "[object ");
45
- js_pushliteral(J, self->u.user.tag);
46
- js_concat(J);
47
- js_pushliteral(J, "]");
48
- js_concat(J);
49
- break;
50
- }
51
- }
52
- }
53
-
54
- static void Op_valueOf(js_State *J)
55
- {
56
- js_copy(J, 0);
57
- }
58
-
59
- static void Op_hasOwnProperty(js_State *J)
60
- {
61
- js_Object *self = js_toobject(J, 0);
62
- const char *name = js_tostring(J, 1);
63
- js_Property *ref;
64
- int k;
65
-
66
- if (self->type == JS_CSTRING) {
67
- if (js_isarrayindex(J, name, &k) && k >= 0 && k < self->u.s.length) {
68
- js_pushboolean(J, 1);
69
- return;
70
- }
71
- }
72
-
73
- if (self->type == JS_CARRAY && self->u.a.simple) {
74
- if (js_isarrayindex(J, name, &k) && k >= 0 && k < self->u.a.flat_length) {
75
- js_pushboolean(J, 1);
76
- return;
77
- }
78
- }
79
-
80
- ref = jsV_getownproperty(J, self, name);
81
- js_pushboolean(J, ref != NULL);
82
- }
83
-
84
- static void Op_isPrototypeOf(js_State *J)
85
- {
86
- js_Object *self = js_toobject(J, 0);
87
- if (js_isobject(J, 1)) {
88
- js_Object *V = js_toobject(J, 1);
89
- do {
90
- V = V->prototype;
91
- if (V == self) {
92
- js_pushboolean(J, 1);
93
- return;
94
- }
95
- } while (V);
96
- }
97
- js_pushboolean(J, 0);
98
- }
99
-
100
- static void Op_propertyIsEnumerable(js_State *J)
101
- {
102
- js_Object *self = js_toobject(J, 0);
103
- const char *name = js_tostring(J, 1);
104
- js_Property *ref = jsV_getownproperty(J, self, name);
105
- js_pushboolean(J, ref && !(ref->atts & JS_DONTENUM));
106
- }
107
-
108
- static void O_getPrototypeOf(js_State *J)
109
- {
110
- js_Object *obj;
111
- if (!js_isobject(J, 1))
112
- js_typeerror(J, "not an object");
113
- obj = js_toobject(J, 1);
114
- if (obj->prototype)
115
- js_pushobject(J, obj->prototype);
116
- else
117
- js_pushnull(J);
118
- }
119
-
120
- static void O_getOwnPropertyDescriptor(js_State *J)
121
- {
122
- js_Object *obj;
123
- js_Property *ref;
124
- if (!js_isobject(J, 1))
125
- js_typeerror(J, "not an object");
126
- obj = js_toobject(J, 1);
127
- ref = jsV_getproperty(J, obj, js_tostring(J, 2));
128
- if (!ref) {
129
- /* TODO: builtin properties (string and array index and length, regexp flags, etc) */
130
- js_pushundefined(J);
131
- } else {
132
- js_newobject(J);
133
- if (!ref->getter && !ref->setter) {
134
- js_pushvalue(J, ref->value);
135
- js_defproperty(J, -2, "value", 0);
136
- js_pushboolean(J, !(ref->atts & JS_READONLY));
137
- js_defproperty(J, -2, "writable", 0);
138
- } else {
139
- if (ref->getter)
140
- js_pushobject(J, ref->getter);
141
- else
142
- js_pushundefined(J);
143
- js_defproperty(J, -2, "get", 0);
144
- if (ref->setter)
145
- js_pushobject(J, ref->setter);
146
- else
147
- js_pushundefined(J);
148
- js_defproperty(J, -2, "set", 0);
149
- }
150
- js_pushboolean(J, !(ref->atts & JS_DONTENUM));
151
- js_defproperty(J, -2, "enumerable", 0);
152
- js_pushboolean(J, !(ref->atts & JS_DONTCONF));
153
- js_defproperty(J, -2, "configurable", 0);
154
- }
155
- }
156
-
157
- static int O_getOwnPropertyNames_walk(js_State *J, js_Property *ref, int i)
158
- {
159
- if (ref->left->level)
160
- i = O_getOwnPropertyNames_walk(J, ref->left, i);
161
- js_pushstring(J, ref->name);
162
- js_setindex(J, -2, i++);
163
- if (ref->right->level)
164
- i = O_getOwnPropertyNames_walk(J, ref->right, i);
165
- return i;
166
- }
167
-
168
- static void O_getOwnPropertyNames(js_State *J)
169
- {
170
- js_Object *obj;
171
- char name[32];
172
- int k;
173
- int i;
174
-
175
- if (!js_isobject(J, 1))
176
- js_typeerror(J, "not an object");
177
- obj = js_toobject(J, 1);
178
-
179
- js_newarray(J);
180
-
181
- if (obj->properties->level)
182
- i = O_getOwnPropertyNames_walk(J, obj->properties, 0);
183
- else
184
- i = 0;
185
-
186
- if (obj->type == JS_CARRAY) {
187
- js_pushliteral(J, "length");
188
- js_setindex(J, -2, i++);
189
- if (obj->u.a.simple) {
190
- for (k = 0; k < obj->u.a.flat_length; ++k) {
191
- js_itoa(name, k);
192
- js_pushstring(J, name);
193
- js_setindex(J, -2, i++);
194
- }
195
- }
196
- }
197
-
198
- if (obj->type == JS_CSTRING) {
199
- js_pushliteral(J, "length");
200
- js_setindex(J, -2, i++);
201
- for (k = 0; k < obj->u.s.length; ++k) {
202
- js_itoa(name, k);
203
- js_pushstring(J, name);
204
- js_setindex(J, -2, i++);
205
- }
206
- }
207
-
208
- if (obj->type == JS_CREGEXP) {
209
- js_pushliteral(J, "source");
210
- js_setindex(J, -2, i++);
211
- js_pushliteral(J, "global");
212
- js_setindex(J, -2, i++);
213
- js_pushliteral(J, "ignoreCase");
214
- js_setindex(J, -2, i++);
215
- js_pushliteral(J, "multiline");
216
- js_setindex(J, -2, i++);
217
- js_pushliteral(J, "lastIndex");
218
- js_setindex(J, -2, i++);
219
- }
220
- }
221
-
222
- static void ToPropertyDescriptor(js_State *J, js_Object *obj, const char *name, js_Object *desc)
223
- {
224
- int haswritable = 0;
225
- int hasvalue = 0;
226
- int enumerable = 0;
227
- int configurable = 0;
228
- int writable = 0;
229
- int atts = 0;
230
-
231
- js_pushobject(J, obj);
232
- js_pushobject(J, desc);
233
-
234
- if (js_hasproperty(J, -1, "writable")) {
235
- haswritable = 1;
236
- writable = js_toboolean(J, -1);
237
- js_pop(J, 1);
238
- }
239
- if (js_hasproperty(J, -1, "enumerable")) {
240
- enumerable = js_toboolean(J, -1);
241
- js_pop(J, 1);
242
- }
243
- if (js_hasproperty(J, -1, "configurable")) {
244
- configurable = js_toboolean(J, -1);
245
- js_pop(J, 1);
246
- }
247
- if (js_hasproperty(J, -1, "value")) {
248
- hasvalue = 1;
249
- js_defproperty(J, -3, name, 0);
250
- }
251
-
252
- if (!writable) atts |= JS_READONLY;
253
- if (!enumerable) atts |= JS_DONTENUM;
254
- if (!configurable) atts |= JS_DONTCONF;
255
-
256
- if (js_hasproperty(J, -1, "get")) {
257
- if (haswritable || hasvalue)
258
- js_typeerror(J, "value/writable and get/set attributes are exclusive");
259
- } else {
260
- js_pushundefined(J);
261
- }
262
-
263
- if (js_hasproperty(J, -2, "set")) {
264
- if (haswritable || hasvalue)
265
- js_typeerror(J, "value/writable and get/set attributes are exclusive");
266
- } else {
267
- js_pushundefined(J);
268
- }
269
-
270
- js_defaccessor(J, -4, name, atts);
271
-
272
- js_pop(J, 2);
273
- }
274
-
275
- static void O_defineProperty(js_State *J)
276
- {
277
- if (!js_isobject(J, 1)) js_typeerror(J, "not an object");
278
- if (!js_isobject(J, 3)) js_typeerror(J, "not an object");
279
- ToPropertyDescriptor(J, js_toobject(J, 1), js_tostring(J, 2), js_toobject(J, 3));
280
- js_copy(J, 1);
281
- }
282
-
283
- static void O_defineProperties_walk(js_State *J, js_Property *ref)
284
- {
285
- if (ref->left->level)
286
- O_defineProperties_walk(J, ref->left);
287
- if (!(ref->atts & JS_DONTENUM)) {
288
- js_pushvalue(J, ref->value);
289
- ToPropertyDescriptor(J, js_toobject(J, 1), ref->name, js_toobject(J, -1));
290
- js_pop(J, 1);
291
- }
292
- if (ref->right->level)
293
- O_defineProperties_walk(J, ref->right);
294
- }
295
-
296
- static void O_defineProperties(js_State *J)
297
- {
298
- js_Object *props;
299
-
300
- if (!js_isobject(J, 1)) js_typeerror(J, "not an object");
301
- if (!js_isobject(J, 2)) js_typeerror(J, "not an object");
302
-
303
- props = js_toobject(J, 2);
304
- if (props->properties->level)
305
- O_defineProperties_walk(J, props->properties);
306
-
307
- js_copy(J, 1);
308
- }
309
-
310
- static void O_create_walk(js_State *J, js_Object *obj, js_Property *ref)
311
- {
312
- if (ref->left->level)
313
- O_create_walk(J, obj, ref->left);
314
- if (!(ref->atts & JS_DONTENUM)) {
315
- if (ref->value.t.type != JS_TOBJECT)
316
- js_typeerror(J, "not an object");
317
- ToPropertyDescriptor(J, obj, ref->name, ref->value.u.object);
318
- }
319
- if (ref->right->level)
320
- O_create_walk(J, obj, ref->right);
321
- }
322
-
323
- static void O_create(js_State *J)
324
- {
325
- js_Object *obj;
326
- js_Object *proto;
327
- js_Object *props;
328
-
329
- if (js_isobject(J, 1))
330
- proto = js_toobject(J, 1);
331
- else if (js_isnull(J, 1))
332
- proto = NULL;
333
- else
334
- js_typeerror(J, "not an object or null");
335
-
336
- obj = jsV_newobject(J, JS_COBJECT, proto);
337
- js_pushobject(J, obj);
338
-
339
- if (js_isdefined(J, 2)) {
340
- if (!js_isobject(J, 2))
341
- js_typeerror(J, "not an object");
342
- props = js_toobject(J, 2);
343
- if (props->properties->level)
344
- O_create_walk(J, obj, props->properties);
345
- }
346
- }
347
-
348
- static int O_keys_walk(js_State *J, js_Property *ref, int i)
349
- {
350
- if (ref->left->level)
351
- i = O_keys_walk(J, ref->left, i);
352
- if (!(ref->atts & JS_DONTENUM)) {
353
- js_pushstring(J, ref->name);
354
- js_setindex(J, -2, i++);
355
- }
356
- if (ref->right->level)
357
- i = O_keys_walk(J, ref->right, i);
358
- return i;
359
- }
360
-
361
- static void O_keys(js_State *J)
362
- {
363
- js_Object *obj;
364
- char name[32];
365
- int i, k;
366
-
367
- if (!js_isobject(J, 1))
368
- js_typeerror(J, "not an object");
369
- obj = js_toobject(J, 1);
370
-
371
- js_newarray(J);
372
-
373
- if (obj->properties->level)
374
- i = O_keys_walk(J, obj->properties, 0);
375
- else
376
- i = 0;
377
-
378
- if (obj->type == JS_CSTRING) {
379
- for (k = 0; k < obj->u.s.length; ++k) {
380
- js_itoa(name, k);
381
- js_pushstring(J, name);
382
- js_setindex(J, -2, i++);
383
- }
384
- }
385
-
386
- if (obj->type == JS_CARRAY && obj->u.a.simple) {
387
- for (k = 0; k < obj->u.a.flat_length; ++k) {
388
- js_itoa(name, k);
389
- js_pushstring(J, name);
390
- js_setindex(J, -2, i++);
391
- }
392
- }
393
- }
394
-
395
- static void O_preventExtensions(js_State *J)
396
- {
397
- js_Object *obj;
398
- if (!js_isobject(J, 1))
399
- js_typeerror(J, "not an object");
400
- obj = js_toobject(J, 1);
401
- jsR_unflattenarray(J, obj);
402
- obj->extensible = 0;
403
- js_copy(J, 1);
404
- }
405
-
406
- static void O_isExtensible(js_State *J)
407
- {
408
- if (!js_isobject(J, 1))
409
- js_typeerror(J, "not an object");
410
- js_pushboolean(J, js_toobject(J, 1)->extensible);
411
- }
412
-
413
- static void O_seal_walk(js_State *J, js_Property *ref)
414
- {
415
- if (ref->left->level)
416
- O_seal_walk(J, ref->left);
417
- ref->atts |= JS_DONTCONF;
418
- if (ref->right->level)
419
- O_seal_walk(J, ref->right);
420
- }
421
-
422
- static void O_seal(js_State *J)
423
- {
424
- js_Object *obj;
425
-
426
- if (!js_isobject(J, 1))
427
- js_typeerror(J, "not an object");
428
-
429
- obj = js_toobject(J, 1);
430
- jsR_unflattenarray(J, obj);
431
- obj->extensible = 0;
432
-
433
- if (obj->properties->level)
434
- O_seal_walk(J, obj->properties);
435
-
436
- js_copy(J, 1);
437
- }
438
-
439
- static int O_isSealed_walk(js_State *J, js_Property *ref)
440
- {
441
- if (ref->left->level)
442
- if (!O_isSealed_walk(J, ref->left))
443
- return 0;
444
- if (!(ref->atts & JS_DONTCONF))
445
- return 0;
446
- if (ref->right->level)
447
- if (!O_isSealed_walk(J, ref->right))
448
- return 0;
449
- return 1;
450
- }
451
-
452
- static void O_isSealed(js_State *J)
453
- {
454
- js_Object *obj;
455
-
456
- if (!js_isobject(J, 1))
457
- js_typeerror(J, "not an object");
458
-
459
- obj = js_toobject(J, 1);
460
- if (obj->extensible) {
461
- js_pushboolean(J, 0);
462
- return;
463
- }
464
-
465
- if (obj->properties->level)
466
- js_pushboolean(J, O_isSealed_walk(J, obj->properties));
467
- else
468
- js_pushboolean(J, 1);
469
- }
470
-
471
- static void O_freeze_walk(js_State *J, js_Property *ref)
472
- {
473
- if (ref->left->level)
474
- O_freeze_walk(J, ref->left);
475
- ref->atts |= JS_READONLY | JS_DONTCONF;
476
- if (ref->right->level)
477
- O_freeze_walk(J, ref->right);
478
- }
479
-
480
- static void O_freeze(js_State *J)
481
- {
482
- js_Object *obj;
483
-
484
- if (!js_isobject(J, 1))
485
- js_typeerror(J, "not an object");
486
-
487
- obj = js_toobject(J, 1);
488
- jsR_unflattenarray(J, obj);
489
- obj->extensible = 0;
490
-
491
- if (obj->properties->level)
492
- O_freeze_walk(J, obj->properties);
493
-
494
- js_copy(J, 1);
495
- }
496
-
497
- static int O_isFrozen_walk(js_State *J, js_Property *ref)
498
- {
499
- if (ref->left->level)
500
- if (!O_isFrozen_walk(J, ref->left))
501
- return 0;
502
- if (!(ref->atts & JS_READONLY))
503
- return 0;
504
- if (!(ref->atts & JS_DONTCONF))
505
- return 0;
506
- if (ref->right->level)
507
- if (!O_isFrozen_walk(J, ref->right))
508
- return 0;
509
- return 1;
510
- }
511
-
512
- static void O_isFrozen(js_State *J)
513
- {
514
- js_Object *obj;
515
-
516
- if (!js_isobject(J, 1))
517
- js_typeerror(J, "not an object");
518
-
519
- obj = js_toobject(J, 1);
520
-
521
- if (obj->properties->level) {
522
- if (!O_isFrozen_walk(J, obj->properties)) {
523
- js_pushboolean(J, 0);
524
- return;
525
- }
526
- }
527
-
528
- js_pushboolean(J, !obj->extensible);
529
- }
530
-
531
- void jsB_initobject(js_State *J)
532
- {
533
- js_pushobject(J, J->Object_prototype);
534
- {
535
- jsB_propf(J, "Object.prototype.toString", Op_toString, 0);
536
- jsB_propf(J, "Object.prototype.toLocaleString", Op_toString, 0);
537
- jsB_propf(J, "Object.prototype.valueOf", Op_valueOf, 0);
538
- jsB_propf(J, "Object.prototype.hasOwnProperty", Op_hasOwnProperty, 1);
539
- jsB_propf(J, "Object.prototype.isPrototypeOf", Op_isPrototypeOf, 1);
540
- jsB_propf(J, "Object.prototype.propertyIsEnumerable", Op_propertyIsEnumerable, 1);
541
- }
542
- js_newcconstructor(J, jsB_Object, jsB_new_Object, "Object", 1);
543
- {
544
- /* ES5 */
545
- jsB_propf(J, "Object.getPrototypeOf", O_getPrototypeOf, 1);
546
- jsB_propf(J, "Object.getOwnPropertyDescriptor", O_getOwnPropertyDescriptor, 2);
547
- jsB_propf(J, "Object.getOwnPropertyNames", O_getOwnPropertyNames, 1);
548
- jsB_propf(J, "Object.create", O_create, 2);
549
- jsB_propf(J, "Object.defineProperty", O_defineProperty, 3);
550
- jsB_propf(J, "Object.defineProperties", O_defineProperties, 2);
551
- jsB_propf(J, "Object.seal", O_seal, 1);
552
- jsB_propf(J, "Object.freeze", O_freeze, 1);
553
- jsB_propf(J, "Object.preventExtensions", O_preventExtensions, 1);
554
- jsB_propf(J, "Object.isSealed", O_isSealed, 1);
555
- jsB_propf(J, "Object.isFrozen", O_isFrozen, 1);
556
- jsB_propf(J, "Object.isExtensible", O_isExtensible, 1);
557
- jsB_propf(J, "Object.keys", O_keys, 1);
558
- }
559
- js_defglobal(J, "Object", JS_DONTENUM);
560
- }