Skip to content

Releases: godotjs/GodotJS

v0.9.9

26 Jan 09:38
Compare
Choose a tag to compare
  • Add prebuilt libs of lws/v8 for Windows/Linux on ARM64
  • Add support for hooking godot typeloader
  • Add support for JavaScriptCore
  • Minor bugfix

v0.9.8 (1.0.0-pre)

14 Jan 10:26
Compare
Choose a tag to compare
  • Fix a crash issue in jsb::Buffer destructor when using quickjs-ng as runtime
  • Support for pure JavaScript projects (still with typings)
  • Refactor annotations and helper functions in jsb.core

Breaking Changes

  • All annotations are moved into godot.annotations module (from jsb.core).
  • GLOBAL_GET and EDITOR_GET are moved into godot module (from jsb.core).
  • callable() is removed from jsb.core, use Callable.create in godot module instead.
  • to_array_buffer() is removed from jsb.core, use PackedByteArray.to_array_buffer() instead.
  • $wait is removed from jsb.core, use SignalN<...>.as_promise() instead.

Note

Regenerating .d.ts files in your project will help you a lot to fix most errors caused by the breaking changes below.
VSCode (or tsc) will report all relevant changes as errors.
Old annotations still work temporarily in this version but will be removed in a future version. Please update your codes.

v0.9.7

09 Jan 09:25
Compare
Choose a tag to compare
  • Support quickjs-ng
  • Improve error handling in quickjs.impl
  • minor fixes

v0.9.6

28 Dec 02:01
Compare
Choose a tag to compare
  • web.impl is available now
  • v8.impl, quickjs.impl: Worker can be interrupted
  • minor bugfix

v0.9.5

05 Dec 14:02
Compare
Choose a tag to compare

FEATURES

  • bridge: Support Worker (experimental)
  • bridge: add rpc annotation support (not finished)

IMPROVEMENTS

  • debugger: add custom natvis for SArray<T> and Local<T>
  • weaver: split jsb.bundle into files for editor/runtime to reduce data cost at runtime
  • weaver-editor: Add a menu entry to cleanup obsolete .js files
  • weaver-editor: Retrieve input history by up/down arrow keystroke in REPL
  • bridge: use get_instance_binding for better compatibilities with other modules
  • bridge: console.log prints the script class name of a script instance instead of it's base native class
  • codegen: support Callable with an optional return type
  • codegen: use GError as class name for the global enum Error

BUGFIX

  • quickjs.impl: possible leaks if no execution called
  • quickjs.impl: incorrect stacktrace pattern for jsb_sourcemap
  • quickjs.impl: possible crash when coverting an empty string (on linux)
  • bridge: possible environment.objects_ access violation
  • bridge: Thread.set_name should be called in spawned threads

v0.9.4

12 Nov 12:57
Compare
Choose a tag to compare

IMPROVEMENTS:

  • [quickjs.impl] add valuetype optimization
  • [quickjs.impl] possible to build for Web with use_quickjs=yes (not tested)
  • Generate .gdignore in node_modules anyway when starting up the editor

BUGFIX

  • a crash issue caused by unbalanced reference counting in bind_godot_object/finalizer
  • a crash issue in TimerManager::invoke_timers
  • [quickjs.impl] fix crash issues on disposing quickjs.impl's Isolate

v0.9.2

24 Oct 02:03
Compare
Choose a tag to compare
  • Fix some known inconsistent behaviors in quickjs.impl (the snake example works in quickjs.impl now)
  • Fix a few crash issues in quickjs.impl

v0.9.1

22 Oct 12:55
Compare
Choose a tag to compare
  • Fix prototype chain issue when using v8.impl
  • Fix compiler errors on macos when using quickjs.impl
  • Fix an issue of loading modules from node_modules in the exported build
  • Add impl-specific unit tests
  • Minor fixes and code tidying

v0.9.0

16 Oct 08:36
Compare
Choose a tag to compare
  • Support QuickJS as an alternative runtime
  • Add unit testings
  • Minor fixes

v0.8.6

14 Sep 04:48
Compare
Choose a tag to compare
  • Experimental: Automatically collect all dependent JS files when exporting (include JS source files in node_modules)
  • Experimental: Add code doc helper annotations (@deprecated @experimental @help)
  • Experimental: Add Android and iOS build support (not fully tested)
  • Fixed: tsc doesn't emit JS with relative path of TS source (explicitly define rootDir='./' in tsconfig.json now)