- added versioning (started at version 0.9.0)
- added changelog.md
- changed Makefile for stressless builds
- Script.cpp remove generator test at startup
- some speed-optimation
- Array stuff changed (length is no more a getter)
- many other changes
- cleanup & fix pool_allocator
- fix ScriptVar from int64_t
- added: README.md
- added MSVC 2013 project-files
- added some virtual functions
- little change on pool_allocator
- wait on keypress on end of Script.exe
- added MSVC 2017 project-files
- added MSVC 2022 project-files
- fix compiler error end warnings with MSVC 2017/2022
- change some functions to const
- change C++ Language with MSVC to ISO Standard C++20
- fix typos in MSVC sln
- fix for test029.js, test31.js and test032.42.js
- remove c++ array.length
- added few functions comments
- added exponentiation operator (**)
- added exponentiation assignment (**=)
- added nullish coalescing operator (??)
- added nullish coalescing assignment (??=)
- added optional chaining (?.) e.g. obj.val?.prop or obj.val?.[expr] or obj.func?.(args)
- fixed test024.js
- removed cloning stuff
- changed test019.42.js now uses JSON.parse(JSON.stringify(obj1)) instead of obj1.clone()
- added generator function statements and expessions with asterisk
- as statement: function* generator() { ... }
- as expression let generator = function*() { ... }
- or as object member: let obj = { *generator() { ... } } Previously, a generator was recognized by it if a yield expression was included. This behavior is no longer supported.
- changed 42tests/test004.js now uses function* fibonacci()
- modern times: from version 0.10.0 a compiler with C++17 support is required
- changed: parseFloat, parseInt CNumber.operator=(string_view)
- changed: Left2Right is now a sorted array at compile time (constexpr)
- removed: serialize and unserialize binary (compiled js-code)
- removed: dynamic_cast<CScriptTokenData...> now std::variant is used no RTTI overhead
- added: all CScriptTokenData... now hold in std::shared_ptr
- removed global using namespace std; in all cpp-files
- replaced dynamic_cast with CScriptVarDynamicCast (useing of custom RTTI) ca. 7x faster then dynamic_cast
- removed unneeded deleted copy-constructors
- changed CScriptVarPtr is replaced by std::shared_ptr
- changed enum NType to enum class NType
- changed reserved_words_begin is now a sorted array reserved_words at compile time (constexpr)
- changed:str2reserved_begin is now a sorted array reserved_words_by_str at compile time (constexpr)
- changed:tokens2str_begin is now a sorted array tokens2str at compile time (constexpr)
- changed enum TOKENIZE_FLAGS to enum class TOKENIZE_FLAGS
- changed CScriptVarLink now allways hold in shared_ptr
- removed some debuging stuff
- added TinyJS now uses always the namespace TinyJS
- added the lexer now uses a ring buffer system and can read directly from a stream
- changed Now std::function is used instead of a simple function pointer for native functions
- removed No longer required classes CScriptVarFunctionNativeCallback and CScriptVarFunctionNativeClass. All native functionality is now in class CScriptVarFunctionNative
- added CScriptVarString(std::string &&) move constructor
- added String.prototype.padStart(targetLength, padString)
- added String.prototype.padEnd(targetLength, padString)
- added String.prototype.repeat(count)
- added String.prototype.includes(searchString, position)
- added String.prototype.startsWith(searchString, position)
- added String.prototype.endsWith(searchString, length)
- removed octal escapes in string literals
- added template literals
- added ...Rest Parameter
- changed let and const Statements rewriten
- removed non Standard let expression
- removed non Standard conditional catch
- removed non Standard Array Comprehensions
- changed destructuring rewritten
- added Symbol() Symbol.for() and Symbol.keyFor()
- changed rename Array.prototype.contains to Array.prototype.includes
- added Array.prototype.map
- added Array.prototype.shift
- added Array.prototype.unshift
- added Array.prototype.slice
- added Array.prototype.splice
- added Array.prototype.forEach
- added Array.prototype.indexOf
- added Array.prototype.reduce
- added Array.prototype.reduceRight
- removed unneeded files
- updated README.md
- changed MSVC 2017 c++ standard to c++17
- changed MSVC 2020 c++ standard to c++20
- fixed compilation issues with MSVC 2017 and 2022
- removed debugging code from the pool allocato
- updated improved readability of run_tests.cpp and Script.cpp
- updated time_logger.h to use std::chrono::high_resolution_clock
- added console.log, console.debug, console.info, console.warn and console.error
- added CTinyJS::setConsole to set log level and output stream
- added console.time, console.timeLog, console.timeEnd
- added overlodaed versions of addNative to register standard functions like int(int,int)
- renamed pool_allocator.h/.cpp to TinyJS_PoolAllocator.h/.cpp
- updated Date() functions
- removed extra constructor handling with setConstructor/getConstructor, as new.target has been supported since version 0.10.0
- fixed compile with make on Linux or MingW or ...
- changed The Date object has been refactored, with time handling now implemented using std::chrono::local_time from C++20
- fixed compiling withs clang++ (moved some constructors fom .h to .cpp)
- PoolAllocator optimized allocate_shared_protected allocates controlblock and object at once