Skip to content

Commit 398a108

Browse files
committed
Update generate_builtin_api.py, javascript.cpp, javascript.h, and 13 more files
1 parent 01457b9 commit 398a108

16 files changed

+452
-101
lines changed

SCsub

+1-4
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,20 @@ def dump_text_file_to_cpp(file):
3030

3131

3232
if JS_ENGINE == "quickjs":
33-
# generate builtin binding code
3433
import generate_builtin_api
3534

3635
generate_builtin_api.generate_api_json(os.path.join(GetLaunchDir(), "modules", os.path.basename(os.getcwd())))
3736
import thirdparty.quickjs.builtin_binding_generator
3837

3938
thirdparty.quickjs.builtin_binding_generator.generate_builtin_bindings()
40-
# build quickjs source
4139
version = open("thirdparty/quickjs/quickjs/VERSION.txt", "r").read().split("\n")[0]
4240
env_module.Append(CPPDEFINES={"QUICKJS_CONFIG_VERSION": '"' + version + '"'})
4341
env_module.Append(CPPDEFINES=["CONFIG_BIGNUM"])
4442
if "release" not in (env_module["target"] or ""):
4543
env_module.Append(CPPDEFINES={"DUMP_LEAKS": 1})
4644
env_module.Append(CPPDEFINES={"QUICKJS_WITH_DEBUGGER": 1})
4745
env_module.Append(CPPPATH=["thirdparty/quickjs/quickjs"])
48-
# env_module.Append(CXXFLAGS=["-std=c++20"])
49-
# env_module.Append(CCFLAGS=["-std=c++20"])
46+
env_module.Append(CPPPATH=["thirdparty/quickjs"])
5047
if TOOLS:
5148
env_module.add_source_files(env.modules_sources, "tools/editor_tools.cpp")
5249
env_module.add_source_files(env.modules_sources, "thirdparty/quickjs/quickjs_builtin_binder.gen.cpp")

generate_builtin_api.py

+2
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ def parse_class(cls):
314314
continue # ignored methods
315315
if class_name == "PackedByteArray" and method_name.startswith("encode_") or method_name.startswith("decode_"):
316316
continue # ignore decode/encode methods
317+
if class_name == "PackedByteArray" and method_name == "get_string_from_wchar":
318+
continue
317319
return_type = m.find("return").attrib["type"] if m.find("return") != None else "void"
318320
if return_type in TYPE_MAP:
319321
return_type = TYPE_MAP[return_type]

javascript.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ void JavaScriptModule::_bind_methods() {
349349
}
350350

351351
JavaScriptModule::JavaScriptModule() {
352-
set_source_code("module.exports = {};" ENDL);
352+
set_source_code("module.exports = {};\n");
353353
}
354354

355355
Ref<Resource> ResourceFormatLoaderJavaScriptModule::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, ResourceFormatLoader::CacheMode p_cache_mode) {

javascript.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@
3434
#include "core/io/resource_loader.h"
3535
#include "core/io/resource_saver.h"
3636
#include "core/object/script_language.h"
37-
#include "javascript_binder.h"
3837
#include "scene/resources/text_file.h"
3938

39+
#include "javascript_binder.h"
40+
4041
#define EXT_JSCLASS "mjs"
4142
#define EXT_JSMODULE "js"
4243
#define EXT_JSON "json"

javascript_instance.h

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#define JAVASCRIPT_INSTANCE_H
3333

3434
#include "core/object/script_language.h"
35+
3536
#include "core/variant/callable.h"
3637
#include "javascript.h"
3738
#include "javascript_binder.h"

javascript_language.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@
3131
#include "javascript_language.h"
3232
#include "core/io/file_access.h"
3333
#include "core/object/class_db.h"
34-
JavaScriptLanguage *JavaScriptLanguage::singleton = NULL;
34+
35+
#include "javascript_binder.h"
36+
#include "quickjs_binder.h"
37+
38+
JavaScriptLanguage *JavaScriptLanguage::singleton = nullptr;
3539

3640
namespace JavaScriptInstanceBindingCallbacks {
3741

javascript_language.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@
3232
#define JAVASCRIPT_LANGUAGE_H
3333

3434
#include "core/object/script_language.h"
35+
3536
#include "javascript.h"
36-
#include "thirdparty/quickjs/quickjs_binder.h"
37+
#include "javascript_binder.h"
3738

3839
class CallableMiddleman : public Object {
3940
GDCLASS(CallableMiddleman, Object);

register_types.cpp

+3-22
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
/**************************************************************************/
3030

3131
#include "register_types.h"
32+
3233
#include "javascript.h"
3334
#include "javascript_language.h"
3435

@@ -45,31 +46,11 @@ class EditorExportJavaScript : public EditorExportPlugin {
4546
public:
4647
virtual void _export_file(const String &p_path, const String &p_type, const HashSet<String> &p_features) override {
4748
String script_key;
48-
// int script_mode = EditorExportPreset::MODE_SCRIPT_COMPILED;
4949
const Ref<EditorExportPreset> &preset = get_export_preset();
50-
51-
// if (preset.is_valid()) {
52-
// script_mode = preset->get_file_export_mode(p_path);
53-
// }
54-
55-
// if (script_mode == EditorExportPreset::MODE_SCRIPT_TEXT)
56-
// return;
57-
5850
String extension = p_path.get_extension();
59-
if (extension != EXT_JSCLASS && extension != EXT_JSMODULE)
51+
if (extension != EXT_JSCLASS && extension != EXT_JSMODULE) {
6052
return;
61-
62-
// if (script_mode == EditorExportPreset::FileExportMode::MODE_SCRIPT_COMPILED) {
63-
// #if 0 // Disable compile to bytecode as it is not battle tested on all platform
64-
// Error err;
65-
// String code = FileAccess::get_file_as_string(p_path, &err);
66-
// ERR_FAIL_COND(err != OK);
67-
68-
// Vector<uint8_t> file;
69-
// ERR_FAIL_COND(JavaScriptLanguage::get_singleton()->get_main_binder()->compile_to_bytecode(code, p_path, file) != OK);
70-
// add_file(p_path.get_basename() + "." + extension + "b", file, true);
71-
// #endif
72-
// }
53+
}
7354
}
7455
virtual String _get_name() const override { return "JavaScript"; }
7556
};

thirdparty/quickjs/builtin_binding_generator.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -755,8 +755,9 @@ def generate_class_bind_action(cls, constructor):
755755
def generate_builtin_bindings():
756756
Template = """\
757757
#include "core/variant/variant.h"
758-
#include "quickjs_binder.h"
758+
759759
#include "quickjs_builtin_binder.h"
760+
#include "quickjs_worker.h"
760761
761762
#ifndef inf
762763
#define inf INFINITY

0 commit comments

Comments
 (0)