1212#include " weaver-editor/jsb_export_plugin.h"
1313#endif
1414
15- static GodotJSScriptLanguage* script_language_js;
1615static Ref<ResourceFormatLoaderGodotJSScript> resource_loader;
1716static Ref<ResourceFormatSaverGodotJSScript> resource_saver;
1817
@@ -21,29 +20,31 @@ void jsb_initialize_module(ModuleInitializationLevel p_level)
2120 if (p_level == MODULE_INITIALIZATION_LEVEL_SERVERS)
2221 {
2322 GDREGISTER_CLASS (GodotJSScript);
23+ GDREGISTER_CLASS (GodotJavaScript);
2424
2525 jsb::impl::GlobalInitialize::init ();
2626
2727 // register javascript language
28- script_language_js = memnew (GodotJSScriptLanguage ());
29- ScriptServer::register_language (script_language_js );
28+ ScriptServer::register_language (GodotJSScriptLanguage::create_singleton ());
29+ ScriptServer::register_language (GodotJavascriptLanguage::create_singleton () );
3030
3131 resource_loader.instantiate ();
32- resource_loader->register_resource_extension (JSB_TYPESCRIPT_EXT, script_language_js );
33- resource_loader->register_resource_extension (JSB_JAVASCRIPT_EXT, script_language_js );
32+ resource_loader->register_resource_extension (JSB_TYPESCRIPT_EXT, GodotJSScriptLanguage::get_singleton () );
33+ resource_loader->register_resource_extension (JSB_JAVASCRIPT_EXT, GodotJavascriptLanguage::get_singleton () );
3434 ResourceLoader::add_resource_format_loader (resource_loader);
3535
3636 resource_saver.instantiate ();
3737 ResourceSaver::add_resource_format_saver (resource_saver);
3838
39+
3940#ifdef TOOLS_ENABLED
4041 EditorNode::add_init_callback ([]
4142 {
42- GodotJSEditorPlugin* plugin = memnew (GodotJSEditorPlugin (script_language_js ));
43+ GodotJSEditorPlugin* plugin = memnew (GodotJSEditorPlugin (GodotJSScriptLanguage::get_singleton () ));
4344 EditorNode::add_editor_plugin (plugin);
4445
4546 Ref<GodotJSExportPlugin> exporter;
46- exporter.instantiate (script_language_js ->get_environment ());
47+ exporter.instantiate (GodotJSScriptLanguage::get_singleton () ->get_environment ());
4748 EditorExport::get_singleton ()->add_export_plugin (exporter);
4849
4950 plugin->set_name (jsb_typename (GodotJSEditorPlugin));
@@ -62,8 +63,10 @@ void jsb_uninitialize_module(ModuleInitializationLevel p_level)
6263 ResourceSaver::remove_resource_format_saver (resource_saver);
6364 resource_saver.unref ();
6465
65- jsb_check (script_language_js);
66- ScriptServer::unregister_language (script_language_js);
67- memdelete (script_language_js);
66+ ScriptServer::unregister_language (GodotJSScriptLanguage::get_singleton ());
67+ GodotJSScriptLanguage::destroy_singleton ();
68+
69+ ScriptServer::unregister_language (GodotJavascriptLanguage::get_singleton ());
70+ GodotJavascriptLanguage::destroy_singleton ();
6871 }
6972}
0 commit comments