Changelog (4608B)
1 2024-01-13: 2 3 - top-level-await support in modules 4 - allow 'await' in the REPL 5 - added Array.prototype.{with,toReversed,toSpliced,toSorted} and 6 TypedArray.prototype.{with,toReversed,toSorted} 7 - added String.prototype.isWellFormed and String.prototype.toWellFormed 8 - added Object.groupBy and Map.groupBy 9 - added Promise.withResolvers 10 - class static block 11 - 'in' operator support for private fields 12 - optional chaining fixes 13 - added RegExp 'd' flag 14 - fixed RegExp zero length match logic 15 - fixed RegExp case insensitive flag 16 - added os.sleepAsync(), os.getpid() and os.now() 17 - added cosmopolitan build 18 - misc bug fixes 19 20 2023-12-09: 21 22 - added Object.hasOwn, {String|Array|TypedArray}.prototype.at, 23 {Array|TypedArray}.prototype.findLast{Index} 24 - BigInt support is enabled even if CONFIG_BIGNUM disabled 25 - updated to Unicode 15.0.0 26 - misc bug fixes 27 28 2021-03-27: 29 30 - faster Array.prototype.push and Array.prototype.unshift 31 - added JS_UpdateStackTop() 32 - fixed Windows console 33 - misc bug fixes 34 35 2020-11-08: 36 37 - improved function parameter initializers 38 - added std.setenv(), std.unsetenv() and std.getenviron() 39 - added JS_EvalThis() 40 - misc bug fixes 41 42 2020-09-06: 43 44 - added logical assignment operators 45 - added IsHTMLDDA support 46 - faster for-of loops 47 - os.Worker now takes a module filename as parameter 48 - qjsc: added -D option to compile dynamically loaded modules or workers 49 - misc bug fixes 50 51 2020-07-05: 52 53 - modified JS_GetPrototype() to return a live value 54 - REPL: support unicode characters larger than 16 bits 55 - added os.Worker 56 - improved object serialization 57 - added std.parseExtJSON 58 - misc bug fixes 59 60 2020-04-12: 61 62 - added cross realm support 63 - added AggregateError and Promise.any 64 - added env, uid and gid options in os.exec() 65 - misc bug fixes 66 67 2020-03-16: 68 69 - reworked error handling in std and os libraries: suppressed I/O 70 exceptions in std FILE functions and return a positive errno value 71 when it is explicit 72 - output exception messages to stderr 73 - added std.loadFile(), std.strerror(), std.FILE.prototype.tello() 74 - added JS_GetRuntimeOpaque(), JS_SetRuntimeOpaque(), JS_NewUint32() 75 - updated to Unicode 13.0.0 76 - misc bug fixes 77 78 2020-01-19: 79 80 - keep CONFIG_BIGNUM in the makefile 81 - added os.chdir() 82 - qjs: added -I option 83 - more memory checks in the bignum operations 84 - modified operator overloading semantics to be closer to the TC39 85 proposal 86 - suppressed "use bigint" mode. Simplified "use math" mode 87 - BigDecimal: changed suffix from 'd' to 'm' 88 - misc bug fixes 89 90 2020-01-05: 91 92 - always compile the bignum code. Added '--bignum' option to qjs. 93 - added BigDecimal 94 - added String.prototype.replaceAll 95 - misc bug fixes 96 97 2019-12-21: 98 99 - added nullish coalescing operator (ES2020) 100 - added optional chaining (ES2020) 101 - removed recursions in garbage collector 102 - test stack overflow in the parser 103 - improved backtrace logic 104 - added JS_SetHostPromiseRejectionTracker() 105 - allow exotic constructors 106 - improved c++ compatibility 107 - misc bug fixes 108 109 2019-10-27: 110 111 - added example of C class in a module (examples/test_point.js) 112 - added JS_GetTypedArrayBuffer() 113 - misc bug fixes 114 115 2019-09-18: 116 117 - added os.exec and other system calls 118 - exported JS_ValueToAtom() 119 - qjsc: added 'qjsc_' prefix to the generated C identifiers 120 - added cross-compilation support 121 - misc bug fixes 122 123 2019-09-01: 124 125 - added globalThis 126 - documented JS_EVAL_FLAG_COMPILE_ONLY 127 - added import.meta.url and import.meta.main 128 - added 'debugger' statement 129 - misc bug fixes 130 131 2019-08-18: 132 133 - added os.realpath, os.getcwd, os.mkdir, os.stat, os.lstat, 134 os.readlink, os.readdir, os.utimes, std.popen 135 - module autodetection 136 - added import.meta 137 - misc bug fixes 138 139 2019-08-10: 140 141 - added public class fields and private class fields, methods and 142 accessors (TC39 proposal) 143 - changed JS_ToCStringLen() prototype 144 - qjsc: handle '-' in module names and modules with the same filename 145 - added std.urlGet 146 - exported JS_GetOwnPropertyNames() and JS_GetOwnProperty() 147 - exported some bigint C functions 148 - added support for eshost in run-test262 149 - misc bug fixes 150 151 2019-07-28: 152 153 - added dynamic import 154 - added Promise.allSettled 155 - added String.prototype.matchAll 156 - added Object.fromEntries 157 - reduced number of ticks in await 158 - added BigInt support in Atomics 159 - exported JS_NewPromiseCapability() 160 - misc async function and async generator fixes 161 - enabled hashbang support by default 162 163 2019-07-21: 164 165 - updated test262 tests 166 - updated to Unicode version 12.1.0 167 - fixed missing Date object in qjsc 168 - fixed multi-context creation 169 - misc ES2020 related fixes 170 - simplified power and division operators in bignum extension 171 - fixed several crash conditions 172 173 2019-07-09: 174 175 - first public release