duktape 2.3.0.0 → 2.6.0.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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +4 -0
- data/ext/duktape/duk_config.h +147 -36
- data/ext/duktape/duktape.c +11398 -8301
- data/ext/duktape/duktape.h +39 -8
- data/lib/duktape/version.rb +1 -1
- metadata +7 -8
data/ext/duktape/duktape.h
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
/*
|
2
|
-
* Duktape public API for Duktape 2.
|
2
|
+
* Duktape public API for Duktape 2.6.0.
|
3
3
|
*
|
4
4
|
* See the API reference for documentation on call semantics. The exposed,
|
5
5
|
* supported API is between the "BEGIN PUBLIC API" and "END PUBLIC API"
|
6
6
|
* comments. Other parts of the header are Duktape internal and related to
|
7
7
|
* e.g. platform/compiler/feature detection.
|
8
8
|
*
|
9
|
-
* Git commit
|
10
|
-
* Git branch
|
9
|
+
* Git commit ee81aa9e0076e8049edbfe6aea96702e04f1827d (v2.0.1.0-13-gee81aa9-dirty).
|
10
|
+
* Git branch duktape-2.6.
|
11
11
|
*
|
12
12
|
* See Duktape AUTHORS.rst and LICENSE.txt for copyright and
|
13
13
|
* licensing information.
|
@@ -21,7 +21,7 @@
|
|
21
21
|
*
|
22
22
|
* (http://opensource.org/licenses/MIT)
|
23
23
|
*
|
24
|
-
* Copyright (c) 2013-
|
24
|
+
* Copyright (c) 2013-2019 by Duktape authors (see AUTHORS.rst)
|
25
25
|
*
|
26
26
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
27
27
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -100,6 +100,16 @@
|
|
100
100
|
* * Michal Kasperek (https://github.com/michalkas)
|
101
101
|
* * Andrew Janke (https://github.com/apjanke)
|
102
102
|
* * Steve Fan (https://github.com/stevefan1999)
|
103
|
+
* * Edward Betts (https://github.com/edwardbetts)
|
104
|
+
* * Ozhan Duz (https://github.com/webfolderio)
|
105
|
+
* * Akos Kiss (https://github.com/akosthekiss)
|
106
|
+
* * TheBrokenRail (https://github.com/TheBrokenRail)
|
107
|
+
* * Jesse Doyle (https://github.com/jessedoyle)
|
108
|
+
* * Gero Kuehn (https://github.com/dc6jgk)
|
109
|
+
* * James Swift (https://github.com/phraemer)
|
110
|
+
* * Luis de Bethencourt (https://github.com/luisbg)
|
111
|
+
* * Ian Whyman (https://github.com/v00d00)
|
112
|
+
* * Rick Sayre (https://github.com/whorfin)
|
103
113
|
*
|
104
114
|
* Other contributions
|
105
115
|
* ===================
|
@@ -140,6 +150,8 @@
|
|
140
150
|
* * Neil Kolban (https://github.com/nkolban)
|
141
151
|
* * Wilhelm Wanecek (https://github.com/wanecek)
|
142
152
|
* * Andrew Janke (https://github.com/apjanke)
|
153
|
+
* * Unamer (https://github.com/unamer)
|
154
|
+
* * Karl Dahlke (eklhad@gmail.com)
|
143
155
|
*
|
144
156
|
* If you are accidentally missing from this list, send me an e-mail
|
145
157
|
* (``sami.vaarala@iki.fi``) and I'll fix the omission.
|
@@ -164,16 +176,16 @@
|
|
164
176
|
* development snapshots have 99 for patch level (e.g. 0.10.99 would be a
|
165
177
|
* development version after 0.10.0 but before the next official release).
|
166
178
|
*/
|
167
|
-
#define DUK_VERSION
|
179
|
+
#define DUK_VERSION 20600L
|
168
180
|
|
169
181
|
/* Git commit, describe, and branch for Duktape build. Useful for
|
170
182
|
* non-official snapshot builds so that application code can easily log
|
171
183
|
* which Duktape snapshot was used. Not available in the ECMAScript
|
172
184
|
* environment.
|
173
185
|
*/
|
174
|
-
#define DUK_GIT_COMMIT "
|
175
|
-
#define DUK_GIT_DESCRIBE "v2.0.1.0-
|
176
|
-
#define DUK_GIT_BRANCH "
|
186
|
+
#define DUK_GIT_COMMIT "ee81aa9e0076e8049edbfe6aea96702e04f1827d"
|
187
|
+
#define DUK_GIT_DESCRIBE "v2.0.1.0-13-gee81aa9-dirty"
|
188
|
+
#define DUK_GIT_BRANCH "duktape-2.6"
|
177
189
|
|
178
190
|
/* External duk_config.h provides platform/compiler/OS dependent
|
179
191
|
* typedefs and macros, and DUK_USE_xxx config options so that
|
@@ -383,30 +395,35 @@ struct duk_time_components {
|
|
383
395
|
#define DUK_DEFPROP_C DUK_DEFPROP_CONFIGURABLE
|
384
396
|
#define DUK_DEFPROP_WE (DUK_DEFPROP_WRITABLE | DUK_DEFPROP_ENUMERABLE)
|
385
397
|
#define DUK_DEFPROP_WC (DUK_DEFPROP_WRITABLE | DUK_DEFPROP_CONFIGURABLE)
|
398
|
+
#define DUK_DEFPROP_EC (DUK_DEFPROP_ENUMERABLE | DUK_DEFPROP_CONFIGURABLE)
|
386
399
|
#define DUK_DEFPROP_WEC (DUK_DEFPROP_WRITABLE | DUK_DEFPROP_ENUMERABLE | DUK_DEFPROP_CONFIGURABLE)
|
387
400
|
#define DUK_DEFPROP_HAVE_W DUK_DEFPROP_HAVE_WRITABLE
|
388
401
|
#define DUK_DEFPROP_HAVE_E DUK_DEFPROP_HAVE_ENUMERABLE
|
389
402
|
#define DUK_DEFPROP_HAVE_C DUK_DEFPROP_HAVE_CONFIGURABLE
|
390
403
|
#define DUK_DEFPROP_HAVE_WE (DUK_DEFPROP_HAVE_WRITABLE | DUK_DEFPROP_HAVE_ENUMERABLE)
|
391
404
|
#define DUK_DEFPROP_HAVE_WC (DUK_DEFPROP_HAVE_WRITABLE | DUK_DEFPROP_HAVE_CONFIGURABLE)
|
405
|
+
#define DUK_DEFPROP_HAVE_EC (DUK_DEFPROP_HAVE_ENUMERABLE | DUK_DEFPROP_HAVE_CONFIGURABLE)
|
392
406
|
#define DUK_DEFPROP_HAVE_WEC (DUK_DEFPROP_HAVE_WRITABLE | DUK_DEFPROP_HAVE_ENUMERABLE | DUK_DEFPROP_HAVE_CONFIGURABLE)
|
393
407
|
#define DUK_DEFPROP_SET_W DUK_DEFPROP_SET_WRITABLE
|
394
408
|
#define DUK_DEFPROP_SET_E DUK_DEFPROP_SET_ENUMERABLE
|
395
409
|
#define DUK_DEFPROP_SET_C DUK_DEFPROP_SET_CONFIGURABLE
|
396
410
|
#define DUK_DEFPROP_SET_WE (DUK_DEFPROP_SET_WRITABLE | DUK_DEFPROP_SET_ENUMERABLE)
|
397
411
|
#define DUK_DEFPROP_SET_WC (DUK_DEFPROP_SET_WRITABLE | DUK_DEFPROP_SET_CONFIGURABLE)
|
412
|
+
#define DUK_DEFPROP_SET_EC (DUK_DEFPROP_SET_ENUMERABLE | DUK_DEFPROP_SET_CONFIGURABLE)
|
398
413
|
#define DUK_DEFPROP_SET_WEC (DUK_DEFPROP_SET_WRITABLE | DUK_DEFPROP_SET_ENUMERABLE | DUK_DEFPROP_SET_CONFIGURABLE)
|
399
414
|
#define DUK_DEFPROP_CLEAR_W DUK_DEFPROP_CLEAR_WRITABLE
|
400
415
|
#define DUK_DEFPROP_CLEAR_E DUK_DEFPROP_CLEAR_ENUMERABLE
|
401
416
|
#define DUK_DEFPROP_CLEAR_C DUK_DEFPROP_CLEAR_CONFIGURABLE
|
402
417
|
#define DUK_DEFPROP_CLEAR_WE (DUK_DEFPROP_CLEAR_WRITABLE | DUK_DEFPROP_CLEAR_ENUMERABLE)
|
403
418
|
#define DUK_DEFPROP_CLEAR_WC (DUK_DEFPROP_CLEAR_WRITABLE | DUK_DEFPROP_CLEAR_CONFIGURABLE)
|
419
|
+
#define DUK_DEFPROP_CLEAR_EC (DUK_DEFPROP_CLEAR_ENUMERABLE | DUK_DEFPROP_CLEAR_CONFIGURABLE)
|
404
420
|
#define DUK_DEFPROP_CLEAR_WEC (DUK_DEFPROP_CLEAR_WRITABLE | DUK_DEFPROP_CLEAR_ENUMERABLE | DUK_DEFPROP_CLEAR_CONFIGURABLE)
|
405
421
|
#define DUK_DEFPROP_ATTR_W (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_W)
|
406
422
|
#define DUK_DEFPROP_ATTR_E (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_E)
|
407
423
|
#define DUK_DEFPROP_ATTR_C (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_C)
|
408
424
|
#define DUK_DEFPROP_ATTR_WE (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_WE)
|
409
425
|
#define DUK_DEFPROP_ATTR_WC (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_WC)
|
426
|
+
#define DUK_DEFPROP_ATTR_EC (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_EC)
|
410
427
|
#define DUK_DEFPROP_ATTR_WEC (DUK_DEFPROP_HAVE_WEC | DUK_DEFPROP_WEC)
|
411
428
|
|
412
429
|
/* Flags for duk_push_thread_raw() */
|
@@ -447,18 +464,24 @@ struct duk_time_components {
|
|
447
464
|
* Macros to create Symbols as C statically constructed strings.
|
448
465
|
*
|
449
466
|
* Call e.g. as DUK_HIDDEN_SYMBOL("myProperty") <=> ("\xFF" "myProperty").
|
467
|
+
*
|
450
468
|
* Local symbols have a unique suffix, caller should take care to avoid
|
451
469
|
* conflicting with the Duktape internal representation by e.g. prepending
|
452
470
|
* a '!' character: DUK_LOCAL_SYMBOL("myLocal", "!123").
|
453
471
|
*
|
454
472
|
* Note that these can only be used for string constants, not dynamically
|
455
473
|
* created strings.
|
474
|
+
*
|
475
|
+
* You shouldn't normally use DUK_INTERNAL_SYMBOL() at all. It is reserved
|
476
|
+
* for Duktape internal symbols only. There are no versioning guarantees
|
477
|
+
* for internal symbols.
|
456
478
|
*/
|
457
479
|
|
458
480
|
#define DUK_HIDDEN_SYMBOL(x) ("\xFF" x)
|
459
481
|
#define DUK_GLOBAL_SYMBOL(x) ("\x80" x)
|
460
482
|
#define DUK_LOCAL_SYMBOL(x,uniq) ("\x81" x "\xff" uniq)
|
461
483
|
#define DUK_WELLKNOWN_SYMBOL(x) ("\x81" x "\xff")
|
484
|
+
#define DUK_INTERNAL_SYMBOL(x) ("\x82" x)
|
462
485
|
|
463
486
|
/*
|
464
487
|
* If no variadic macros, __FILE__ and __LINE__ are passed through globals
|
@@ -644,6 +667,7 @@ DUK_EXTERNAL_DECL void duk_swap_top(duk_context *ctx, duk_idx_t idx);
|
|
644
667
|
DUK_EXTERNAL_DECL void duk_dup(duk_context *ctx, duk_idx_t from_idx);
|
645
668
|
DUK_EXTERNAL_DECL void duk_dup_top(duk_context *ctx);
|
646
669
|
DUK_EXTERNAL_DECL void duk_insert(duk_context *ctx, duk_idx_t to_idx);
|
670
|
+
DUK_EXTERNAL_DECL void duk_pull(duk_context *ctx, duk_idx_t from_idx);
|
647
671
|
DUK_EXTERNAL_DECL void duk_replace(duk_context *ctx, duk_idx_t to_idx);
|
648
672
|
DUK_EXTERNAL_DECL void duk_copy(duk_context *ctx, duk_idx_t from_idx, duk_idx_t to_idx);
|
649
673
|
DUK_EXTERNAL_DECL void duk_remove(duk_context *ctx, duk_idx_t idx);
|
@@ -703,6 +727,7 @@ DUK_EXTERNAL_DECL void duk_push_thread_stash(duk_context *ctx, duk_context *targ
|
|
703
727
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_object(duk_context *ctx);
|
704
728
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_bare_object(duk_context *ctx);
|
705
729
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_array(duk_context *ctx);
|
730
|
+
DUK_EXTERNAL_DECL duk_idx_t duk_push_bare_array(duk_context *ctx);
|
706
731
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_c_function(duk_context *ctx, duk_c_function func, duk_idx_t nargs);
|
707
732
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_c_lightfunc(duk_context *ctx, duk_c_function func, duk_idx_t nargs, duk_idx_t length, duk_int_t magic);
|
708
733
|
DUK_EXTERNAL_DECL duk_idx_t duk_push_thread_raw(duk_context *ctx, duk_uint_t flags);
|
@@ -937,6 +962,8 @@ DUK_EXTERNAL_DECL duk_context *duk_require_context(duk_context *ctx, duk_idx_t i
|
|
937
962
|
DUK_EXTERNAL_DECL void duk_require_function(duk_context *ctx, duk_idx_t idx);
|
938
963
|
#define duk_require_callable(ctx,idx) \
|
939
964
|
duk_require_function((ctx), (idx))
|
965
|
+
DUK_EXTERNAL_DECL void duk_require_constructor_call(duk_context *ctx);
|
966
|
+
DUK_EXTERNAL_DECL void duk_require_constructable(duk_context *ctx, duk_idx_t idx);
|
940
967
|
DUK_EXTERNAL_DECL void *duk_require_heapptr(duk_context *ctx, duk_idx_t idx);
|
941
968
|
|
942
969
|
/* Symbols are object coercible and covered by DUK_TYPE_MASK_STRING. */
|
@@ -986,6 +1013,8 @@ DUK_EXTERNAL_DECL void duk_to_primitive(duk_context *ctx, duk_idx_t idx, duk_int
|
|
986
1013
|
|
987
1014
|
/* safe variants of a few coercion operations */
|
988
1015
|
DUK_EXTERNAL_DECL const char *duk_safe_to_lstring(duk_context *ctx, duk_idx_t idx, duk_size_t *out_len);
|
1016
|
+
DUK_EXTERNAL_DECL const char *duk_to_stacktrace(duk_context *ctx, duk_idx_t idx);
|
1017
|
+
DUK_EXTERNAL_DECL const char *duk_safe_to_stacktrace(duk_context *ctx, duk_idx_t idx);
|
989
1018
|
#define duk_safe_to_string(ctx,idx) \
|
990
1019
|
duk_safe_to_lstring((ctx), (idx), NULL)
|
991
1020
|
|
@@ -1010,6 +1039,8 @@ DUK_EXTERNAL_DECL const char *duk_hex_encode(duk_context *ctx, duk_idx_t idx);
|
|
1010
1039
|
DUK_EXTERNAL_DECL void duk_hex_decode(duk_context *ctx, duk_idx_t idx);
|
1011
1040
|
DUK_EXTERNAL_DECL const char *duk_json_encode(duk_context *ctx, duk_idx_t idx);
|
1012
1041
|
DUK_EXTERNAL_DECL void duk_json_decode(duk_context *ctx, duk_idx_t idx);
|
1042
|
+
DUK_EXTERNAL_DECL void duk_cbor_encode(duk_context *ctx, duk_idx_t idx, duk_uint_t encode_flags);
|
1043
|
+
DUK_EXTERNAL_DECL void duk_cbor_decode(duk_context *ctx, duk_idx_t idx, duk_uint_t decode_flags);
|
1013
1044
|
|
1014
1045
|
DUK_EXTERNAL_DECL const char *duk_buffer_to_string(duk_context *ctx, duk_idx_t idx);
|
1015
1046
|
|
data/lib/duktape/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duktape
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Magnus Holm
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description:
|
14
14
|
email: judofyr@gmail.com
|
15
15
|
executables: []
|
16
16
|
extensions:
|
@@ -30,7 +30,7 @@ homepage: https://github.com/judofyr/duktape.rb
|
|
30
30
|
licenses:
|
31
31
|
- MIT
|
32
32
|
metadata: {}
|
33
|
-
post_install_message:
|
33
|
+
post_install_message:
|
34
34
|
rdoc_options: []
|
35
35
|
require_paths:
|
36
36
|
- lib
|
@@ -45,9 +45,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
requirements: []
|
48
|
-
|
49
|
-
|
50
|
-
signing_key:
|
48
|
+
rubygems_version: 3.0.3
|
49
|
+
signing_key:
|
51
50
|
specification_version: 4
|
52
51
|
summary: Bindings to the Duktape JavaScript interpreter
|
53
52
|
test_files: []
|