* Implement support for properties in Emscripten generator.
* CLI: Fix option validation to check for valid Emscripten platform.
* Ignore functions returning tag types for now in JS generation.
* Use a Lua bindings spec file for Emscripten tests.
* Improve JS testing scripts.
* Only run packing step for release CI builds.
* Allow static class conversion for classes with implicitly defined constructor
* Fix static being applied to classes without static methods/fields
* Fix static class edge cases
* Parser improvements
* Fix AST Converter missing conversion data
* Fix bug in test code
Can't return `T();` if `T` is a const reference type.
* Fix other test compile bug
It's kinda weird to call it pure virtual and then implement it anyway no?
* Fix test compiler error
Don't skip function bodies to force template instantiations
* Fix clang assert
* Ignore 'BootstrapPatch' folder
Just in case
* Split into files
* Abstract some `ASTConverterCodeGenerator` code
* Code cleanup
* Abstraction improvements
* Fix warning
* Code cleanup
* Add missing native project launch settings
* Fix bootstrap generator
Update bootstrap / parser gen lang version
* Fix bug in `std::optional` mapping
* Fix crash with null template
* Use arm64 headers if available
* Support some `std::optional/vector` methods
* Add optional for csharp
* Template type alias cast fix
* Update generated bootstrap/parser bindings
* Temp fix for build errors in bindings
* Fix `IgnoreSystemDeclsPass` not visiting all declared overrides
* Drop optional support for now
I'm struck on `std::optional:<>:operator=(Ty&&)`, would need to add some code that handles by creating a function for default template arguments but this PR has already become way too large
* Add formatting settings
* Format all files
Unfortunate, but until I can get access to a macOS machine we'll have to live without macOS CI as my previous attempt at adding macOS 13 CI is failing.
* Add additional debug configuration
I've added the DebugOpt config for a better debugging experience.
This version enables some optimizations and uses `_ITERATOR_DEBUG_LEVEL=0` to remove many of the slowdowns of traditional debugging while still keeping the debuggability of the app intact.
It uses the release versions of llvm and crt.
* Enable native debugging when running *.Gen test projects from vs2022
* Move msvc specific define to msc toolset filter
* Update CI to build all configurations
* Ignore crashing unit test in debug builds
* Attempt to fix upload-artifact CI step
* Use msclr string marshallers
* Fix two bugs in Driver.cs
* Update parser bindings
* Add debug mode parser bindings
* Disable CI test step in windows debug
* Trigger debug break on assert
* Fix crashes in debug builds causing CI to fail
Implementation is based on #1819.
* Update to actions/<upload/download>-artifact@v4
Adds two macros to the CppParser/Parser.cpp for custom assert. They print out a message regardless is release or debug enabled. Abort is only called with debug.
Macro `assertm` just prints out the message if the condition is false. Macro `assertml` also prints out the given source location to indicate where parsing fails.
Macro `assertml` is not used often but might be good to be used more.
Also, I removed an assert that seems pointless as if check before it handles it already.
Co-authored-by: HenrikVDestia <henrik.valve@destia.fi>
* Rewrite property detection logic to be more configurable.
* Add new property modes to the CLI driver.
* Refactor property handling in GetterSetterToProperty.
* Fixes to QuickJS marshaling.
* Handle more primitive types in `GetInfo`.
* Fix generator kind CLI option matching.
* Alias QuickJS generator kind to `quickjs`.
* General CLI code cleanups.
* Default to x64 platform over x86 for the CLI.
* Implement new Lua bindings file and commands for CLI tool.
* Fix QuickJS primitive type marshaling to take target sizes into account.
* Minor code cleanup.
* Avoid generating includes to units when generating the QuickJS module.
* Update file generation naming pattern for QuickJS files.
* Update QuickJS JS_GetOpaque and JS_GetAnyOpaque references to work with latest upstream.
* Update QuickJS runtime and support code to work with latest upstream.
* Avoid generating properties when generating QuickJS register code.
* Update QuickJS test suite to bootstrap its own QuickJS runtime.
* Update QuickJS test suite to use a Lua bindings definition file.
* Minor fixes to test header files.
* Fix C++ warning about return values for event invokes.
* Disable some non working tests for QuickJS.
* Enable QuickJS testing on CI.
* Fix shell color attributes for test scripts when under CI.
* WIP CI fixes.
* Fix warnings in QuickJS support runtime code.
* Use C99 designated initializers for all QuickJS class def members.
* Disable QuickJS CI steps on Windows.
* Clean up error handling for `JS_ToBool`.
* More QuickJS support code fixes.
* Rename Signal.cpp to QuickJS nomenclature.
* Fix QuickJS JS_ToBigUint call.
* Remove QuickJS test script verbosity.
* More CI fixes.
* Verbose build.
* Extension fix.
I do not know I'm first to encounter this, however, loop that removes module without translation units, could not have worked.
In C# Enumerator prohibs editing the collection so you cannot remove modules from `options.Module` while iterating `options.Mobule`.
Chose `RemoveAll` for its simplicity. Not necessary optimal solution although it might be.
Co-authored-by: HenrikVDestia <henrik.valve@destia.fi>