Skip to content

fix 3.4 build#116

Closed
codediy wants to merge 1 commit intogodotjs:masterfrom
codediy:master
Closed

fix 3.4 build#116
codediy wants to merge 1 commit intogodotjs:masterfrom
codediy:master

Conversation

@codediy
Copy link
Copy Markdown

@codediy codediy commented Jan 4, 2022

  1. ERR_PRINTS
  • 替换成ERR_PRINT
  1. ECMAScript
// 3.4未知应用
bool inherits_script(const Ref<Script> &p_script) const;

bool ECMAScript::inherits_script(const Ref<Script> &p_script) const {
	return false;
}
  1. ECMAScriptLanguage
virtual bool is_control_flow_keyword(String p_keywords) const;
// 控制流关键词
bool ECMAScriptLanguage::is_control_flow_keyword(String p_keyword) const {
	return p_keyword == "break" ||
			p_keyword == "continue" ||
			p_keyword == "if" ||
			p_keyword == "else" ||
			p_keyword == "for" ||
			p_keyword == "switch" ||
			p_keyword == "default" ||
			p_keyword == "return" ||
			p_keyword == "while";
}
  1. QuickJSBinder
JSValue QuickJSBinder::godot_set_script_meta(JSContext *ctx, JSValue this_val, int argc, JSValue *argv, int magic) {
    // 注释掉 报错的
	// ERR_FAIL_COND_V(argc < 2, JS_ThrowTypeError(ctx, "Two or more arguments expected"))
	// ERR_FAIL_COND_V(!JS_IsFunction(ctx, argv[0]), JS_ThrowTypeError(ctx, "godot class expected for argument #0"));

@codediy
Copy link
Copy Markdown
Author

codediy commented Jan 4, 2022

  1. godot.binding_script.gen
  • decompress_dynamic代码错误
binder->get_builtin_binder().register_method(
		Variant::POOL_BYTE_ARRAY,
		"decompress_dynamic",
		[](JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv) {
			ECMAScriptGCHandler *bind = BINDING_DATA_FROM_JS(ctx, this_val);
			PoolByteArray *ptr = bind->getPoolByteArray();
#ifdef DEBUG_METHODS_ENABLED
			ERR_FAIL_COND_V(!QuickJSBinder::validate_type(ctx, Variant::REAL, argv[0]), (JS_ThrowTypeError(ctx, "number expected for argument 0 of PoolByteArray.decompress_dynamic")));
#endif
			const real_t &arg0 = QuickJSBinder::js_to_number(ctx, argv[0]);

#ifdef DEBUG_METHODS_ENABLED
			ERR_FAIL_COND_V(!QuickJSBinder::validate_type(ctx, Variant::REAL, argv[1]), (JS_ThrowTypeError(ctx, "number expected for argument 1 of PoolByteArray.decompress_dynamic")));
#endif
			const real_t &arg1 = QuickJSBinder::js_to_number(ctx, argv[1]);

			PoolByteArray *decompressed = memnew(PoolByteArray);
			decompressed->resize(1024);

			Compression::Mode mode = (Compression::Mode)(arg1);

			int result = Compression::decompress_dynamic(decompressed, arg0, ptr->read().ptr(), ptr->size(), mode);

			if (result == OK) {
				return QuickJSBuiltinBinder::new_object_from(ctx, decompressed);
			} else {
				decompressed->resize(0);
				return JS_UNDEFINED;
			}
		},

@Geequlim Geequlim closed this Apr 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants