Skip to content

Condition "!is_inside_tree()" is true. #184

@fukaraadam

Description

@fukaraadam

ECMAScript Release: 4.1-v0.0.17-alpha-20231003
Current OS: Windows 10 x64

1- When I download and launch Godot, as default there are error messages in every project (even if created new projects):

scene\gui\control.cpp:1999 - Condition "!is_inside_tree()" is true.

image

2- Furthermore, when I add simple mjs class, I had to edit and save it through Godot Editor. If Iast save made by any other editor like notepad++ or VSCode (even if created script through Godot and not edited in Godot Editor), it produces following errors:

Cannot load script in this thread
Parse source code from file 'res://js/demo.mjs' failed.
Failed loading resource: res://js/demo.mjs. Make sure resources have been imported by opening the project in the editor at least once.

image

image

I am not sure if second problem related to first problem, but it is especially problematic if using builder scripts like esbuild, since they produce files automatically. For second problem I have found this:

  • javascript.cpp reload() function calls get_thread_binder() function from some arbitrary thread (p_id) if mjs script not edited by Godot Editor.
  • thread_binder_map only have main thread inside it, since thread_binder_map.getptr(p_id) returns null.

image

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions