quickjs-2023-12-09.tar.xz with Haiku+OpenBSD tweaks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4664 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
parent
af61519632
commit
deb3cfb4b6
8
deps/quickjs/Changelog
vendored
8
deps/quickjs/Changelog
vendored
@ -1,3 +1,11 @@
|
|||||||
|
2023-12-09:
|
||||||
|
|
||||||
|
- added Object.hasOwn, {String|Array|TypedArray}.prototype.at,
|
||||||
|
{Array|TypedArray}.prototype.findLast{Index}
|
||||||
|
- BigInt support is enabled even if CONFIG_BIGNUM disabled
|
||||||
|
- updated to Unicode 15.0.0
|
||||||
|
- misc bug fixes
|
||||||
|
|
||||||
2021-03-27:
|
2021-03-27:
|
||||||
|
|
||||||
- faster Array.prototype.push and Array.prototype.unshift
|
- faster Array.prototype.push and Array.prototype.unshift
|
||||||
|
10
deps/quickjs/Makefile
vendored
10
deps/quickjs/Makefile
vendored
@ -47,7 +47,7 @@ prefix=/usr/local
|
|||||||
#CONFIG_PROFILE=y
|
#CONFIG_PROFILE=y
|
||||||
# use address sanitizer
|
# use address sanitizer
|
||||||
#CONFIG_ASAN=y
|
#CONFIG_ASAN=y
|
||||||
# include the code for BigInt/BigFloat/BigDecimal and math mode
|
# include the code for BigFloat/BigDecimal, math mode and faster large integers
|
||||||
CONFIG_BIGNUM=y
|
CONFIG_BIGNUM=y
|
||||||
|
|
||||||
OBJDIR=.obj
|
OBJDIR=.obj
|
||||||
@ -166,11 +166,10 @@ endif
|
|||||||
|
|
||||||
all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS)
|
all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS)
|
||||||
|
|
||||||
QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o
|
QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o $(OBJDIR)/libbf.o
|
||||||
|
|
||||||
QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
|
QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
|
||||||
ifdef CONFIG_BIGNUM
|
ifdef CONFIG_BIGNUM
|
||||||
QJS_LIB_OBJS+=$(OBJDIR)/libbf.o
|
|
||||||
QJS_OBJS+=$(OBJDIR)/qjscalc.o
|
QJS_OBJS+=$(OBJDIR)/qjscalc.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -317,10 +316,7 @@ endif
|
|||||||
HELLO_SRCS=examples/hello.js
|
HELLO_SRCS=examples/hello.js
|
||||||
HELLO_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \
|
HELLO_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \
|
||||||
-fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \
|
-fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \
|
||||||
-fno-date -fno-module-loader
|
-fno-date -fno-module-loader -fno-bigint
|
||||||
ifdef CONFIG_BIGNUM
|
|
||||||
HELLO_OPTS+=-fno-bigint
|
|
||||||
endif
|
|
||||||
|
|
||||||
hello.c: $(QJSC) $(HELLO_SRCS)
|
hello.c: $(QJSC) $(HELLO_SRCS)
|
||||||
$(QJSC) -e $(HELLO_OPTS) -o $@ $(HELLO_SRCS)
|
$(QJSC) -e $(HELLO_OPTS) -o $@ $(HELLO_SRCS)
|
||||||
|
4
deps/quickjs/TODO
vendored
4
deps/quickjs/TODO
vendored
@ -66,5 +66,5 @@ Optimization ideas:
|
|||||||
Test262o: 0/11262 errors, 463 excluded
|
Test262o: 0/11262 errors, 463 excluded
|
||||||
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
|
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
|
||||||
|
|
||||||
Result: 35/75280 errors, 909 excluded, 585 skipped
|
Result: 41/76133 errors, 1497 excluded, 8650 skipped
|
||||||
Test262 commit: 31126581e7290f9233c29cefd93f66c6ac78f1c9
|
Test262 commit: 6cbb6da9473c56d95358d8e679c5a6d2b4574efb
|
||||||
|
2
deps/quickjs/VERSION
vendored
2
deps/quickjs/VERSION
vendored
@ -1 +1 @@
|
|||||||
2021-03-27
|
2023-12-09
|
||||||
|
BIN
deps/quickjs/doc/quickjs.pdf
vendored
BIN
deps/quickjs/doc/quickjs.pdf
vendored
Binary file not shown.
41
deps/quickjs/libbf.c
vendored
41
deps/quickjs/libbf.c
vendored
@ -37,10 +37,12 @@
|
|||||||
|
|
||||||
/* enable it to check the multiplication result */
|
/* enable it to check the multiplication result */
|
||||||
//#define USE_MUL_CHECK
|
//#define USE_MUL_CHECK
|
||||||
|
#ifdef CONFIG_BIGNUM
|
||||||
/* enable it to use FFT/NTT multiplication */
|
/* enable it to use FFT/NTT multiplication */
|
||||||
#define USE_FFT_MUL
|
#define USE_FFT_MUL
|
||||||
/* enable decimal floating point support */
|
/* enable decimal floating point support */
|
||||||
#define USE_BF_DEC
|
#define USE_BF_DEC
|
||||||
|
#endif
|
||||||
|
|
||||||
//#define inline __attribute__((always_inline))
|
//#define inline __attribute__((always_inline))
|
||||||
|
|
||||||
@ -164,6 +166,21 @@ static inline slimb_t sat_add(slimb_t a, slimb_t b)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline __maybe_unused limb_t shrd(limb_t low, limb_t high, long shift)
|
||||||
|
{
|
||||||
|
if (shift != 0)
|
||||||
|
low = (low >> shift) | (high << (LIMB_BITS - shift));
|
||||||
|
return low;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline __maybe_unused limb_t shld(limb_t a1, limb_t a0, long shift)
|
||||||
|
{
|
||||||
|
if (shift != 0)
|
||||||
|
return (a1 << shift) | (a0 >> (LIMB_BITS - shift));
|
||||||
|
else
|
||||||
|
return a1;
|
||||||
|
}
|
||||||
|
|
||||||
#define malloc(s) malloc_is_forbidden(s)
|
#define malloc(s) malloc_is_forbidden(s)
|
||||||
#define free(p) free_is_forbidden(p)
|
#define free(p) free_is_forbidden(p)
|
||||||
#define realloc(p, s) realloc_is_forbidden(p, s)
|
#define realloc(p, s) realloc_is_forbidden(p, s)
|
||||||
@ -236,7 +253,7 @@ int bf_set_ui(bf_t *r, uint64_t a)
|
|||||||
a1 = a >> 32;
|
a1 = a >> 32;
|
||||||
shift = clz(a1);
|
shift = clz(a1);
|
||||||
r->tab[0] = a0 << shift;
|
r->tab[0] = a0 << shift;
|
||||||
r->tab[1] = (a1 << shift) | (a0 >> (LIMB_BITS - shift));
|
r->tab[1] = shld(a1, a0, shift);
|
||||||
r->expn = 2 * LIMB_BITS - shift;
|
r->expn = 2 * LIMB_BITS - shift;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1585,7 +1602,9 @@ int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,
|
|||||||
r = &tmp;
|
r = &tmp;
|
||||||
}
|
}
|
||||||
if (bf_resize(r, a_len + b_len)) {
|
if (bf_resize(r, a_len + b_len)) {
|
||||||
|
#ifdef USE_FFT_MUL
|
||||||
fail:
|
fail:
|
||||||
|
#endif
|
||||||
bf_set_nan(r);
|
bf_set_nan(r);
|
||||||
ret = BF_ST_MEM_ERROR;
|
ret = BF_ST_MEM_ERROR;
|
||||||
goto done;
|
goto done;
|
||||||
@ -2282,11 +2301,14 @@ static int bf_pow_ui_ui(bf_t *r, limb_t a1, limb_t b,
|
|||||||
bf_t a;
|
bf_t a;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
#ifdef USE_BF_DEC
|
||||||
if (a1 == 10 && b <= LIMB_DIGITS) {
|
if (a1 == 10 && b <= LIMB_DIGITS) {
|
||||||
/* use precomputed powers. We do not round at this point
|
/* use precomputed powers. We do not round at this point
|
||||||
because we expect the caller to do it */
|
because we expect the caller to do it */
|
||||||
ret = bf_set_ui(r, mp_pow_dec[b]);
|
ret = bf_set_ui(r, mp_pow_dec[b]);
|
||||||
} else {
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
bf_init(r->ctx, &a);
|
bf_init(r->ctx, &a);
|
||||||
ret = bf_set_ui(&a, a1);
|
ret = bf_set_ui(&a, a1);
|
||||||
ret |= bf_pow_ui(r, &a, b, prec, flags);
|
ret |= bf_pow_ui(r, &a, b, prec, flags);
|
||||||
@ -5392,21 +5414,6 @@ int bf_acos(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags)
|
|||||||
|
|
||||||
#endif /* LIMB_BITS != 64 */
|
#endif /* LIMB_BITS != 64 */
|
||||||
|
|
||||||
static inline __maybe_unused limb_t shrd(limb_t low, limb_t high, long shift)
|
|
||||||
{
|
|
||||||
if (shift != 0)
|
|
||||||
low = (low >> shift) | (high << (LIMB_BITS - shift));
|
|
||||||
return low;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline __maybe_unused limb_t shld(limb_t a1, limb_t a0, long shift)
|
|
||||||
{
|
|
||||||
if (shift != 0)
|
|
||||||
return (a1 << shift) | (a0 >> (LIMB_BITS - shift));
|
|
||||||
else
|
|
||||||
return a1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if LIMB_DIGITS == 19
|
#if LIMB_DIGITS == 19
|
||||||
|
|
||||||
/* WARNING: hardcoded for b = 1e19. It is assumed that:
|
/* WARNING: hardcoded for b = 1e19. It is assumed that:
|
||||||
|
23
deps/quickjs/libregexp.c
vendored
23
deps/quickjs/libregexp.c
vendored
@ -1071,11 +1071,10 @@ static int re_is_simple_quantifier(const uint8_t *bc_buf, int bc_buf_len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* '*pp' is the first char after '<' */
|
/* '*pp' is the first char after '<' */
|
||||||
static int re_parse_group_name(char *buf, int buf_size,
|
static int re_parse_group_name(char *buf, int buf_size, const uint8_t **pp)
|
||||||
const uint8_t **pp, BOOL is_utf16)
|
|
||||||
{
|
{
|
||||||
const uint8_t *p;
|
const uint8_t *p, *p1;
|
||||||
uint32_t c;
|
uint32_t c, d;
|
||||||
char *q;
|
char *q;
|
||||||
|
|
||||||
p = *pp;
|
p = *pp;
|
||||||
@ -1086,11 +1085,18 @@ static int re_parse_group_name(char *buf, int buf_size,
|
|||||||
p++;
|
p++;
|
||||||
if (*p != 'u')
|
if (*p != 'u')
|
||||||
return -1;
|
return -1;
|
||||||
c = lre_parse_escape(&p, is_utf16 * 2);
|
c = lre_parse_escape(&p, 2); // accept surrogate pairs
|
||||||
} else if (c == '>') {
|
} else if (c == '>') {
|
||||||
break;
|
break;
|
||||||
} else if (c >= 128) {
|
} else if (c >= 128) {
|
||||||
c = unicode_from_utf8(p, UTF8_CHAR_LEN_MAX, &p);
|
c = unicode_from_utf8(p, UTF8_CHAR_LEN_MAX, &p);
|
||||||
|
if (c >= 0xD800 && c <= 0xDBFF) {
|
||||||
|
d = unicode_from_utf8(p, UTF8_CHAR_LEN_MAX, &p1);
|
||||||
|
if (d >= 0xDC00 && d <= 0xDFFF) {
|
||||||
|
c = 0x10000 + 0x400 * (c - 0xD800) + (d - 0xDC00);
|
||||||
|
p = p1;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
@ -1140,8 +1146,7 @@ static int re_parse_captures(REParseState *s, int *phas_named_captures,
|
|||||||
/* potential named capture */
|
/* potential named capture */
|
||||||
if (capture_name) {
|
if (capture_name) {
|
||||||
p += 3;
|
p += 3;
|
||||||
if (re_parse_group_name(name, sizeof(name), &p,
|
if (re_parse_group_name(name, sizeof(name), &p) == 0) {
|
||||||
s->is_utf16) == 0) {
|
|
||||||
if (!strcmp(name, capture_name))
|
if (!strcmp(name, capture_name))
|
||||||
return capture_index;
|
return capture_index;
|
||||||
}
|
}
|
||||||
@ -1314,7 +1319,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
|
|||||||
} else if (p[2] == '<') {
|
} else if (p[2] == '<') {
|
||||||
p += 3;
|
p += 3;
|
||||||
if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf),
|
if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf),
|
||||||
&p, s->is_utf16)) {
|
&p)) {
|
||||||
return re_parse_error(s, "invalid group name");
|
return re_parse_error(s, "invalid group name");
|
||||||
}
|
}
|
||||||
if (find_group_name(s, s->u.tmp_buf) > 0) {
|
if (find_group_name(s, s->u.tmp_buf) > 0) {
|
||||||
@ -1378,7 +1383,7 @@ static int re_parse_term(REParseState *s, BOOL is_backward_dir)
|
|||||||
}
|
}
|
||||||
p1 += 3;
|
p1 += 3;
|
||||||
if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf),
|
if (re_parse_group_name(s->u.tmp_buf, sizeof(s->u.tmp_buf),
|
||||||
&p1, s->is_utf16)) {
|
&p1)) {
|
||||||
if (s->is_utf16 || re_has_named_captures(s))
|
if (s->is_utf16 || re_has_named_captures(s))
|
||||||
return re_parse_error(s, "invalid group name");
|
return re_parse_error(s, "invalid group name");
|
||||||
else
|
else
|
||||||
|
4294
deps/quickjs/libunicode-table.h
vendored
4294
deps/quickjs/libunicode-table.h
vendored
File diff suppressed because it is too large
Load Diff
2
deps/quickjs/qjs.c
vendored
2
deps/quickjs/qjs.c
vendored
@ -454,8 +454,10 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_BIGNUM
|
||||||
if (load_jscalc)
|
if (load_jscalc)
|
||||||
bignum_ext = 1;
|
bignum_ext = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (trace_memory) {
|
if (trace_memory) {
|
||||||
js_trace_malloc_init(&trace_data);
|
js_trace_malloc_init(&trace_data);
|
||||||
|
2
deps/quickjs/qjsc.c
vendored
2
deps/quickjs/qjsc.c
vendored
@ -76,9 +76,7 @@ static const FeatureEntry feature_list[] = {
|
|||||||
{ "promise", "Promise" },
|
{ "promise", "Promise" },
|
||||||
#define FE_MODULE_LOADER 9
|
#define FE_MODULE_LOADER 9
|
||||||
{ "module-loader", NULL },
|
{ "module-loader", NULL },
|
||||||
#ifdef CONFIG_BIGNUM
|
|
||||||
{ "bigint", "BigInt" },
|
{ "bigint", "BigInt" },
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void namelist_add(namelist_t *lp, const char *name, const char *short_name,
|
void namelist_add(namelist_t *lp, const char *name, const char *short_name,
|
||||||
|
6
deps/quickjs/quickjs-atom.h
vendored
6
deps/quickjs/quickjs-atom.h
vendored
@ -169,8 +169,8 @@ DEF(groups, "groups")
|
|||||||
DEF(status, "status")
|
DEF(status, "status")
|
||||||
DEF(reason, "reason")
|
DEF(reason, "reason")
|
||||||
DEF(globalThis, "globalThis")
|
DEF(globalThis, "globalThis")
|
||||||
#ifdef CONFIG_BIGNUM
|
|
||||||
DEF(bigint, "bigint")
|
DEF(bigint, "bigint")
|
||||||
|
#ifdef CONFIG_BIGNUM
|
||||||
DEF(bigfloat, "bigfloat")
|
DEF(bigfloat, "bigfloat")
|
||||||
DEF(bigdecimal, "bigdecimal")
|
DEF(bigdecimal, "bigdecimal")
|
||||||
DEF(roundingMode, "roundingMode")
|
DEF(roundingMode, "roundingMode")
|
||||||
@ -209,15 +209,13 @@ DEF(Int16Array, "Int16Array")
|
|||||||
DEF(Uint16Array, "Uint16Array")
|
DEF(Uint16Array, "Uint16Array")
|
||||||
DEF(Int32Array, "Int32Array")
|
DEF(Int32Array, "Int32Array")
|
||||||
DEF(Uint32Array, "Uint32Array")
|
DEF(Uint32Array, "Uint32Array")
|
||||||
#ifdef CONFIG_BIGNUM
|
|
||||||
DEF(BigInt64Array, "BigInt64Array")
|
DEF(BigInt64Array, "BigInt64Array")
|
||||||
DEF(BigUint64Array, "BigUint64Array")
|
DEF(BigUint64Array, "BigUint64Array")
|
||||||
#endif
|
|
||||||
DEF(Float32Array, "Float32Array")
|
DEF(Float32Array, "Float32Array")
|
||||||
DEF(Float64Array, "Float64Array")
|
DEF(Float64Array, "Float64Array")
|
||||||
DEF(DataView, "DataView")
|
DEF(DataView, "DataView")
|
||||||
#ifdef CONFIG_BIGNUM
|
|
||||||
DEF(BigInt, "BigInt")
|
DEF(BigInt, "BigInt")
|
||||||
|
#ifdef CONFIG_BIGNUM
|
||||||
DEF(BigFloat, "BigFloat")
|
DEF(BigFloat, "BigFloat")
|
||||||
DEF(BigFloatEnv, "BigFloatEnv")
|
DEF(BigFloatEnv, "BigFloatEnv")
|
||||||
DEF(BigDecimal, "BigDecimal")
|
DEF(BigDecimal, "BigDecimal")
|
||||||
|
2
deps/quickjs/quickjs-opcode.h
vendored
2
deps/quickjs/quickjs-opcode.h
vendored
@ -279,7 +279,7 @@ def( scope_get_ref, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase
|
|||||||
def(scope_put_var_init, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */
|
def(scope_put_var_init, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */
|
||||||
def(scope_get_private_field, 7, 1, 1, atom_u16) /* obj -> value, emitted in phase 1, removed in phase 2 */
|
def(scope_get_private_field, 7, 1, 1, atom_u16) /* obj -> value, emitted in phase 1, removed in phase 2 */
|
||||||
def(scope_get_private_field2, 7, 1, 2, atom_u16) /* obj -> obj value, emitted in phase 1, removed in phase 2 */
|
def(scope_get_private_field2, 7, 1, 2, atom_u16) /* obj -> obj value, emitted in phase 1, removed in phase 2 */
|
||||||
def(scope_put_private_field, 7, 1, 1, atom_u16) /* obj value ->, emitted in phase 1, removed in phase 2 */
|
def(scope_put_private_field, 7, 2, 0, atom_u16) /* obj value ->, emitted in phase 1, removed in phase 2 */
|
||||||
|
|
||||||
def( set_class_name, 5, 1, 1, u32) /* emitted in phase 1, removed in phase 2 */
|
def( set_class_name, 5, 1, 1, u32) /* emitted in phase 1, removed in phase 2 */
|
||||||
|
|
||||||
|
2060
deps/quickjs/quickjs.c
vendored
2060
deps/quickjs/quickjs.c
vendored
File diff suppressed because it is too large
Load Diff
6
deps/quickjs/quickjs.h
vendored
6
deps/quickjs/quickjs.h
vendored
@ -733,13 +733,13 @@ JSValue JS_GetPropertyStr(JSContext *ctx, JSValueConst this_obj,
|
|||||||
JSValue JS_GetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
JSValue JS_GetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
||||||
uint32_t idx);
|
uint32_t idx);
|
||||||
|
|
||||||
int JS_SetPropertyInternal(JSContext *ctx, JSValueConst this_obj,
|
int JS_SetPropertyInternal(JSContext *ctx, JSValueConst obj,
|
||||||
JSAtom prop, JSValue val,
|
JSAtom prop, JSValue val, JSValueConst this_obj,
|
||||||
int flags);
|
int flags);
|
||||||
static inline int JS_SetProperty(JSContext *ctx, JSValueConst this_obj,
|
static inline int JS_SetProperty(JSContext *ctx, JSValueConst this_obj,
|
||||||
JSAtom prop, JSValue val)
|
JSAtom prop, JSValue val)
|
||||||
{
|
{
|
||||||
return JS_SetPropertyInternal(ctx, this_obj, prop, val, JS_PROP_THROW);
|
return JS_SetPropertyInternal(ctx, this_obj, prop, val, this_obj, JS_PROP_THROW);
|
||||||
}
|
}
|
||||||
int JS_SetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
int JS_SetPropertyUint32(JSContext *ctx, JSValueConst this_obj,
|
||||||
uint32_t idx, JSValue val);
|
uint32_t idx, JSValue val);
|
||||||
|
44
deps/quickjs/test262.conf
vendored
44
deps/quickjs/test262.conf
vendored
@ -47,16 +47,25 @@ testdir=test262/test
|
|||||||
# Standard language features and proposed extensions
|
# Standard language features and proposed extensions
|
||||||
# list the features that are included
|
# list the features that are included
|
||||||
# skipped features are tagged as such to avoid warnings
|
# skipped features are tagged as such to avoid warnings
|
||||||
|
# Keep this list alpha-sorted (:sort i in vim)
|
||||||
|
|
||||||
|
__getter__
|
||||||
|
__proto__
|
||||||
|
__setter__
|
||||||
AggregateError
|
AggregateError
|
||||||
align-detached-buffer-semantics-with-web-reality
|
align-detached-buffer-semantics-with-web-reality
|
||||||
arbitrary-module-namespace-names=skip
|
arbitrary-module-namespace-names=skip
|
||||||
Array.prototype.at=skip
|
array-find-from-last
|
||||||
|
array-grouping=skip
|
||||||
|
Array.fromAsync=skip
|
||||||
|
Array.prototype.at
|
||||||
Array.prototype.flat
|
Array.prototype.flat
|
||||||
Array.prototype.flatMap
|
Array.prototype.flatMap
|
||||||
Array.prototype.flatten
|
Array.prototype.flatten
|
||||||
|
Array.prototype.includes
|
||||||
Array.prototype.values
|
Array.prototype.values
|
||||||
ArrayBuffer
|
ArrayBuffer
|
||||||
|
arraybuffer-transfer=skip
|
||||||
arrow-function
|
arrow-function
|
||||||
async-functions
|
async-functions
|
||||||
async-iteration
|
async-iteration
|
||||||
@ -64,12 +73,15 @@ Atomics
|
|||||||
Atomics.waitAsync=skip
|
Atomics.waitAsync=skip
|
||||||
BigInt
|
BigInt
|
||||||
caller
|
caller
|
||||||
|
change-array-by-copy=skip
|
||||||
class
|
class
|
||||||
class-fields-private
|
class-fields-private
|
||||||
|
class-fields-private-in=skip
|
||||||
class-fields-public
|
class-fields-public
|
||||||
class-methods-private
|
class-methods-private
|
||||||
class-static-fields-public
|
class-static-block=skip
|
||||||
class-static-fields-private
|
class-static-fields-private
|
||||||
|
class-static-fields-public
|
||||||
class-static-methods-private
|
class-static-methods-private
|
||||||
cleanupSome=skip
|
cleanupSome=skip
|
||||||
coalesce-expression
|
coalesce-expression
|
||||||
@ -85,14 +97,17 @@ DataView.prototype.getInt8
|
|||||||
DataView.prototype.getUint16
|
DataView.prototype.getUint16
|
||||||
DataView.prototype.getUint32
|
DataView.prototype.getUint32
|
||||||
DataView.prototype.setUint8
|
DataView.prototype.setUint8
|
||||||
|
decorators=skip
|
||||||
default-parameters
|
default-parameters
|
||||||
destructuring-assignment
|
destructuring-assignment
|
||||||
destructuring-binding
|
destructuring-binding
|
||||||
dynamic-import
|
dynamic-import
|
||||||
|
error-cause=skip
|
||||||
|
exponentiation
|
||||||
export-star-as-namespace-from-module
|
export-star-as-namespace-from-module
|
||||||
FinalizationGroup=skip
|
FinalizationGroup=skip
|
||||||
FinalizationRegistry=skip
|
|
||||||
FinalizationRegistry.prototype.cleanupSome=skip
|
FinalizationRegistry.prototype.cleanupSome=skip
|
||||||
|
FinalizationRegistry=skip
|
||||||
Float32Array
|
Float32Array
|
||||||
Float64Array
|
Float64Array
|
||||||
for-in-order
|
for-in-order
|
||||||
@ -101,11 +116,16 @@ generators
|
|||||||
globalThis
|
globalThis
|
||||||
hashbang
|
hashbang
|
||||||
host-gc-required=skip
|
host-gc-required=skip
|
||||||
|
import-assertions=skip
|
||||||
|
import-attributes=skip
|
||||||
import.meta
|
import.meta
|
||||||
Int16Array
|
Int16Array
|
||||||
Int32Array
|
Int32Array
|
||||||
Int8Array
|
Int8Array
|
||||||
IsHTMLDDA
|
IsHTMLDDA
|
||||||
|
iterator-helpers=skip
|
||||||
|
json-modules=skip
|
||||||
|
json-parse-with-source=skip
|
||||||
json-superset
|
json-superset
|
||||||
legacy-regexp=skip
|
legacy-regexp=skip
|
||||||
let
|
let
|
||||||
@ -116,10 +136,12 @@ numeric-separator-literal
|
|||||||
object-rest
|
object-rest
|
||||||
object-spread
|
object-spread
|
||||||
Object.fromEntries
|
Object.fromEntries
|
||||||
|
Object.hasOwn
|
||||||
Object.is
|
Object.is
|
||||||
optional-catch-binding
|
optional-catch-binding
|
||||||
optional-chaining
|
optional-chaining
|
||||||
Promise
|
Promise
|
||||||
|
promise-with-resolvers=skip
|
||||||
Promise.allSettled
|
Promise.allSettled
|
||||||
Promise.any
|
Promise.any
|
||||||
Promise.prototype.finally
|
Promise.prototype.finally
|
||||||
@ -130,20 +152,27 @@ Reflect.construct
|
|||||||
Reflect.set
|
Reflect.set
|
||||||
Reflect.setPrototypeOf
|
Reflect.setPrototypeOf
|
||||||
regexp-dotall
|
regexp-dotall
|
||||||
|
regexp-duplicate-named-groups=skip
|
||||||
regexp-lookbehind
|
regexp-lookbehind
|
||||||
regexp-match-indices=skip
|
regexp-match-indices=skip
|
||||||
regexp-named-groups
|
regexp-named-groups
|
||||||
regexp-unicode-property-escapes
|
regexp-unicode-property-escapes
|
||||||
|
regexp-v-flag=skip
|
||||||
|
resizable-arraybuffer=skip
|
||||||
rest-parameters
|
rest-parameters
|
||||||
Set
|
Set
|
||||||
|
set-methods=skip
|
||||||
|
ShadowRealm=skip
|
||||||
SharedArrayBuffer
|
SharedArrayBuffer
|
||||||
string-trimming
|
string-trimming
|
||||||
String.fromCodePoint
|
String.fromCodePoint
|
||||||
|
String.prototype.at
|
||||||
String.prototype.endsWith
|
String.prototype.endsWith
|
||||||
String.prototype.includes
|
String.prototype.includes
|
||||||
String.prototype.at=skip
|
String.prototype.isWellFormed=skip
|
||||||
String.prototype.matchAll
|
String.prototype.matchAll
|
||||||
String.prototype.replaceAll
|
String.prototype.replaceAll
|
||||||
|
String.prototype.toWellFormed=skip
|
||||||
String.prototype.trimEnd
|
String.prototype.trimEnd
|
||||||
String.prototype.trimStart
|
String.prototype.trimStart
|
||||||
super
|
super
|
||||||
@ -162,11 +191,13 @@ Symbol.split
|
|||||||
Symbol.toPrimitive
|
Symbol.toPrimitive
|
||||||
Symbol.toStringTag
|
Symbol.toStringTag
|
||||||
Symbol.unscopables
|
Symbol.unscopables
|
||||||
|
symbols-as-weakmap-keys=skip
|
||||||
tail-call-optimization=skip
|
tail-call-optimization=skip
|
||||||
template
|
template
|
||||||
|
Temporal=skip
|
||||||
top-level-await=skip
|
top-level-await=skip
|
||||||
TypedArray
|
TypedArray
|
||||||
TypedArray.prototype.at=skip
|
TypedArray.prototype.at
|
||||||
u180e
|
u180e
|
||||||
Uint16Array
|
Uint16Array
|
||||||
Uint32Array
|
Uint32Array
|
||||||
@ -176,9 +207,6 @@ WeakMap
|
|||||||
WeakRef=skip
|
WeakRef=skip
|
||||||
WeakSet
|
WeakSet
|
||||||
well-formed-json-stringify
|
well-formed-json-stringify
|
||||||
__getter__
|
|
||||||
__proto__
|
|
||||||
__setter__
|
|
||||||
|
|
||||||
[exclude]
|
[exclude]
|
||||||
# list excluded tests and directories here
|
# list excluded tests and directories here
|
||||||
|
64
deps/quickjs/test262_errors.txt
vendored
64
deps/quickjs/test262_errors.txt
vendored
@ -1,35 +1,41 @@
|
|||||||
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: Test262Error: Expected a ReferenceError but got a ReferenceError
|
test262/test/annexB/language/eval-code/direct/script-decl-lex-collision-in-sloppy-mode.js:13: Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all
|
||||||
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: strict mode: Test262Error: Expected a ReferenceError but got a ReferenceError
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js:53: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/RegExp/named-groups/non-unicode-property-names-valid.js:46: SyntaxError: invalid group name
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-state-completed-broken-promise.js:53: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/RegExp/named-groups/non-unicode-property-names-valid.js:46: strict mode: SyntaxError: invalid group name
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js:34: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: Test262Error: (Testing with BigInt64Array.)
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js:34: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:46: strict mode: Test262Error: (Testing with BigInt64Array.)
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js:47: Test262Error: (Testing with Float64Array.)
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js:47: strict mode: Test262Error: (Testing with Float64Array.)
|
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: Test262Error: Expected a ReferenceError but got a different error constructor with the same name
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:37: strict mode: TypeError: out-of-bound numeric index (Testing with BigInt64Array.)
|
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: strict mode: Test262Error: Expected a ReferenceError but got a different error constructor with the same name
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer.js:34: TypeError: cannot convert bigint to number (Testing with BigInt64Array.)
|
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer.js:32: strict mode: TypeError: out-of-bound numeric index (Testing with BigInt64Array.)
|
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: strict mode: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js:20: Test262Error: Reflect.set("new TA([42n])", "-0", 1n) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/RegExp/unicode_full_case_folding.js:20: Test262Error: \u0390 does not match \u1fd3
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js:20: strict mode: Test262Error: Reflect.set("new TA([42n])", "-0", 1n) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/RegExp/unicode_full_case_folding.js:20: strict mode: Test262Error: \u0390 does not match \u1fd3
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js:21: Test262Error: Reflect.set("new TA([42n])", "1.1", 1n) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/String/prototype/localeCompare/15.5.4.9_CE.js:62: Test262Error: String.prototype.localeCompare considers ö (\u006f\u0308) ≠ ö (\u00f6).
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js:21: strict mode: Test262Error: Reflect.set("new TA([42n])", "1.1", 1n) must return true Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/String/prototype/localeCompare/15.5.4.9_CE.js:62: strict mode: Test262Error: String.prototype.localeCompare considers ö (\u006f\u0308) ≠ ö (\u00f6).
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js:27: Test262Error: Reflect.set("new TA([42n])", "-1", 1n) must return false Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js:27: strict mode: Test262Error: Reflect.set("new TA([42n])", "-1", 1n) must return false Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/built-ins/TypedArray/prototype/sort/sort-tonumber.js:30: strict mode: TypeError: ArrayBuffer is detached (Testing with Float64Array.)
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:24: Test262Error: Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/language/expressions/assignment/target-member-computed-reference-null.js:32: Test262Error: Expected a DummyError but got a TypeError
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:24: strict mode: Test262Error: Expected SameValue(«false», «true») to be true (Testing with BigInt64Array.)
|
test262/test/language/expressions/assignment/target-member-computed-reference-null.js:32: strict mode: Test262Error: Expected a DummyError but got a TypeError
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:37: strict mode: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js:32: Test262Error: Expected a DummyError but got a TypeError
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:32: strict mode: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js:32: strict mode: Test262Error: Expected a DummyError but got a TypeError
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js:22: Test262Error: Reflect.set(sample, "-0", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js:22: strict mode: Test262Error: Reflect.set(sample, "-0", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js:22: Test262Error: Reflect.set(sample, "1.1", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js:22: strict mode: Test262Error: Reflect.set(sample, "1.1", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js:22: Test262Error: Reflect.set(sample, "-1", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js:22: strict mode: Test262Error: Reflect.set(sample, "-1", 1) must return true Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:39: Test262Error: Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:39: strict mode: Test262Error: Expected SameValue(«false», «true») to be true (Testing with Float64Array.)
|
|
||||||
test262/test/language/expressions/dynamic-import/usage-from-eval.js:26: TypeError: $DONE() not called
|
test262/test/language/expressions/dynamic-import/usage-from-eval.js:26: TypeError: $DONE() not called
|
||||||
test262/test/language/expressions/dynamic-import/usage-from-eval.js:26: strict mode: TypeError: $DONE() not called
|
test262/test/language/expressions/dynamic-import/usage-from-eval.js:26: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js:21: TypeError: cannot read property 'c' of undefined
|
test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js:21: TypeError: cannot read property 'c' of undefined
|
||||||
test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js:15: strict mode: TypeError: cannot read property '_b' of undefined
|
test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js:15: strict mode: TypeError: cannot read property '_b' of undefined
|
||||||
|
test262/test/language/global-code/script-decl-lex-var-declared-via-eval-sloppy.js:13: Test262Error: variable Expected a SyntaxError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/module-code/namespace/internals/define-own-property.js:30: Test262Error: Object.freeze: 1 Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: TypeError: $DONE() not called
|
||||||
|
test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: strict mode: TypeError: $DONE() not called
|
||||||
|
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: TypeError: $DONE() not called
|
||||||
|
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: strict mode: TypeError: $DONE() not called
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
|
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
|
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
|
||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
|
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
|
||||||
|
10
deps/quickjs/unicode_download.sh
vendored
10
deps/quickjs/unicode_download.sh
vendored
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
url="ftp://ftp.unicode.org/Public/13.0.0/ucd"
|
url="ftp://ftp.unicode.org/Public/15.0.0/ucd"
|
||||||
emoji_url="${url}/emoji/emoji-data.txt"
|
emoji_url="${url}/emoji/emoji-data.txt"
|
||||||
|
|
||||||
files="CaseFolding.txt DerivedNormalizationProps.txt PropList.txt \
|
files="CaseFolding.txt DerivedNormalizationProps.txt PropList.txt \
|
||||||
@ -11,9 +11,9 @@ PropertyValueAliases.txt"
|
|||||||
|
|
||||||
mkdir -p unicode
|
mkdir -p unicode
|
||||||
|
|
||||||
#for f in $files; do
|
for f in $files; do
|
||||||
# g="${url}/${f}"
|
g="${url}/${f}"
|
||||||
# wget $g -O unicode/$f
|
wget $g -O unicode/$f
|
||||||
#done
|
done
|
||||||
|
|
||||||
wget $emoji_url -O unicode/emoji-data.txt
|
wget $emoji_url -O unicode/emoji-data.txt
|
||||||
|
7
deps/quickjs/unicode_gen_def.h
vendored
7
deps/quickjs/unicode_gen_def.h
vendored
@ -72,6 +72,7 @@ DEF(Coptic, "Copt,Qaac")
|
|||||||
DEF(Cuneiform, "Xsux")
|
DEF(Cuneiform, "Xsux")
|
||||||
DEF(Cypriot, "Cprt")
|
DEF(Cypriot, "Cprt")
|
||||||
DEF(Cyrillic, "Cyrl")
|
DEF(Cyrillic, "Cyrl")
|
||||||
|
DEF(Cypro_Minoan, "Cpmn")
|
||||||
DEF(Deseret, "Dsrt")
|
DEF(Deseret, "Dsrt")
|
||||||
DEF(Devanagari, "Deva")
|
DEF(Devanagari, "Deva")
|
||||||
DEF(Dives_Akuru, "Diak")
|
DEF(Dives_Akuru, "Diak")
|
||||||
@ -104,6 +105,7 @@ DEF(Javanese, "Java")
|
|||||||
DEF(Kaithi, "Kthi")
|
DEF(Kaithi, "Kthi")
|
||||||
DEF(Kannada, "Knda")
|
DEF(Kannada, "Knda")
|
||||||
DEF(Katakana, "Kana")
|
DEF(Katakana, "Kana")
|
||||||
|
DEF(Kawi, "Kawi")
|
||||||
DEF(Kayah_Li, "Kali")
|
DEF(Kayah_Li, "Kali")
|
||||||
DEF(Kharoshthi, "Khar")
|
DEF(Kharoshthi, "Khar")
|
||||||
DEF(Khmer, "Khmr")
|
DEF(Khmer, "Khmr")
|
||||||
@ -138,6 +140,7 @@ DEF(Mro, "Mroo")
|
|||||||
DEF(Multani, "Mult")
|
DEF(Multani, "Mult")
|
||||||
DEF(Myanmar, "Mymr")
|
DEF(Myanmar, "Mymr")
|
||||||
DEF(Nabataean, "Nbat")
|
DEF(Nabataean, "Nbat")
|
||||||
|
DEF(Nag_Mundari, "Nagm")
|
||||||
DEF(Nandinagari, "Nand")
|
DEF(Nandinagari, "Nand")
|
||||||
DEF(New_Tai_Lue, "Talu")
|
DEF(New_Tai_Lue, "Talu")
|
||||||
DEF(Newa, "Newa")
|
DEF(Newa, "Newa")
|
||||||
@ -154,6 +157,7 @@ DEF(Old_Persian, "Xpeo")
|
|||||||
DEF(Old_Sogdian, "Sogo")
|
DEF(Old_Sogdian, "Sogo")
|
||||||
DEF(Old_South_Arabian, "Sarb")
|
DEF(Old_South_Arabian, "Sarb")
|
||||||
DEF(Old_Turkic, "Orkh")
|
DEF(Old_Turkic, "Orkh")
|
||||||
|
DEF(Old_Uyghur, "Ougr")
|
||||||
DEF(Oriya, "Orya")
|
DEF(Oriya, "Orya")
|
||||||
DEF(Osage, "Osge")
|
DEF(Osage, "Osge")
|
||||||
DEF(Osmanya, "Osma")
|
DEF(Osmanya, "Osma")
|
||||||
@ -192,8 +196,11 @@ DEF(Thai, "Thai")
|
|||||||
DEF(Tibetan, "Tibt")
|
DEF(Tibetan, "Tibt")
|
||||||
DEF(Tifinagh, "Tfng")
|
DEF(Tifinagh, "Tfng")
|
||||||
DEF(Tirhuta, "Tirh")
|
DEF(Tirhuta, "Tirh")
|
||||||
|
DEF(Tangsa, "Tnsa")
|
||||||
|
DEF(Toto, "Toto")
|
||||||
DEF(Ugaritic, "Ugar")
|
DEF(Ugaritic, "Ugar")
|
||||||
DEF(Vai, "Vaii")
|
DEF(Vai, "Vaii")
|
||||||
|
DEF(Vithkuqi, "Vith")
|
||||||
DEF(Wancho, "Wcho")
|
DEF(Wancho, "Wcho")
|
||||||
DEF(Warang_Citi, "Wara")
|
DEF(Warang_Citi, "Wara")
|
||||||
DEF(Yezidi, "Yezi")
|
DEF(Yezidi, "Yezi")
|
||||||
|
Loading…
Reference in New Issue
Block a user