diff --git a/frameworks/cocos2d-html5 b/frameworks/cocos2d-html5
index b3d7c70d05..86cf76b562 160000
--- a/frameworks/cocos2d-html5
+++ b/frameworks/cocos2d-html5
@@ -1 +1 @@
-Subproject commit b3d7c70d057ab58b423c00585c88003c5e5ffa53
+Subproject commit 86cf76b5627be037729f79520d46e86c46a1d102
diff --git a/frameworks/js-bindings/bindings/Android.mk b/frameworks/js-bindings/bindings/Android.mk
index 505bbda869..c0819bbb7e 100644
--- a/frameworks/js-bindings/bindings/Android.mk
+++ b/frameworks/js-bindings/bindings/Android.mk
@@ -6,6 +6,8 @@ LOCAL_MODULE := cocos_jsb_static
LOCAL_MODULE_FILENAME := libcocos2dxjsb
+LOCAL_ARM_MODE := arm
+
LOCAL_SRC_FILES := auto/jsb_cocos2dx_auto.cpp \
auto/jsb_cocos2dx_builder_auto.cpp \
auto/jsb_cocos2dx_extension_auto.cpp \
diff --git a/frameworks/js-bindings/bindings/manual/ScriptingCore.h b/frameworks/js-bindings/bindings/manual/ScriptingCore.h
index ab28bf6766..8d56c6bcc2 100644
--- a/frameworks/js-bindings/bindings/manual/ScriptingCore.h
+++ b/frameworks/js-bindings/bindings/manual/ScriptingCore.h
@@ -39,7 +39,7 @@
#include
#include
-#define ENGINE_VERSION "Cocos2d-JS v3.4 Beta0"
+#define ENGINE_VERSION "Cocos2d-JS v3.4"
void js_log(const char *format, ...);
diff --git a/frameworks/js-bindings/bindings/script/jsb_cocos2d.js b/frameworks/js-bindings/bindings/script/jsb_cocos2d.js
index 883887e0a9..bf9ded4bc5 100644
--- a/frameworks/js-bindings/bindings/script/jsb_cocos2d.js
+++ b/frameworks/js-bindings/bindings/script/jsb_cocos2d.js
@@ -26,7 +26,7 @@
// CCConfig.js
//
-cc.ENGINE_VERSION = "Cocos2d-JS v3.4 Beta0";
+cc.ENGINE_VERSION = "Cocos2d-JS v3.4";
cc.FIX_ARTIFACTS_BY_STRECHING_TEXEL = 0;
cc.DIRECTOR_STATS_POSITION = {x: 0, y: 0};
diff --git a/frameworks/js-bindings/cocos2d-x b/frameworks/js-bindings/cocos2d-x
index 9919f0b76a..a4548b8b06 160000
--- a/frameworks/js-bindings/cocos2d-x
+++ b/frameworks/js-bindings/cocos2d-x
@@ -1 +1 @@
-Subproject commit 9919f0b76abd54a955dbfd6b738004f1e8f4263d
+Subproject commit a4548b8b06d837698d789b17f2cb9113523f1640
diff --git a/templates/js-template-runtime/frameworks/runtime-src/Classes/runtime/Runtime.cpp b/templates/js-template-runtime/frameworks/runtime-src/Classes/runtime/Runtime.cpp
index 22ea6b1bbb..8e8add7430 100644
--- a/templates/js-template-runtime/frameworks/runtime-src/Classes/runtime/Runtime.cpp
+++ b/templates/js-template-runtime/frameworks/runtime-src/Classes/runtime/Runtime.cpp
@@ -28,6 +28,7 @@ THE SOFTWARE.
#include "ConsoleCommand.h"
#include "cocos2d_specifics.hpp"
+#include "jsb_cocos2dx_auto.hpp"
#include "cocos2d.h"
#include "ConfigParser.h"
@@ -95,9 +96,9 @@ bool startScript()
bool runtime_FileUtils_addSearchPath(JSContext *cx, uint32_t argc, jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
bool ok = true;
- JSObject *obj = JS_THIS_OBJECT(cx, vp);
+ JS::RootedObject obj(cx, args.thisv().toObjectOrNull());
js_proxy_t *proxy = jsb_get_js_proxy(obj);
cocos2d::FileUtils* cobj = (cocos2d::FileUtils *)(proxy ? proxy->ptr : NULL);
JSB_PRECONDITION2( cobj, cx, false, "cocos2dx_FileUtils_addSearchPath : Invalid Native Object");
@@ -105,12 +106,12 @@ bool runtime_FileUtils_addSearchPath(JSContext *cx, uint32_t argc, jsval *vp)
std::string arg0;
bool arg1 = false;
- ok &= jsval_to_std_string(cx, argv[0], &arg0);
+ ok &= jsval_to_std_string(cx, args.get(0), &arg0);
JSB_PRECONDITION2(ok, cx, false, "cocos2dx_FileUtils_addSearchPath : Error processing arguments");
if (argc == 2)
{
- arg1 = JS::ToBoolean(JS::RootedValue(cx, argv[1]));
+ arg1 = JS::ToBoolean(args.get(1));
}
if (! FileUtils::getInstance()->isAbsolutePath(arg0))
@@ -130,7 +131,7 @@ bool runtime_FileUtils_addSearchPath(JSContext *cx, uint32_t argc, jsval *vp)
#endif
}
- JS_SET_RVAL(cx, vp, JSVAL_VOID);
+ args.rval().setUndefined();
return true;
}
@@ -140,15 +141,15 @@ bool runtime_FileUtils_addSearchPath(JSContext *cx, uint32_t argc, jsval *vp)
bool runtime_FileUtils_setSearchPaths(JSContext *cx, uint32_t argc, jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
bool ok = true;
- JSObject *obj = JS_THIS_OBJECT(cx, vp);
+ JS::RootedObject obj(cx, args.thisv().toObjectOrNull());
js_proxy_t *proxy = jsb_get_js_proxy(obj);
cocos2d::FileUtils* cobj = (cocos2d::FileUtils *)(proxy ? proxy->ptr : NULL);
JSB_PRECONDITION2( cobj, cx, false, "js_cocos2dx_FileUtils_setSearchPaths : Invalid Native Object");
if (argc == 1) {
std::vector vecPaths, writePaths;
- ok &= jsval_to_std_vector_string(cx, argv[0], &vecPaths);
+ ok &= jsval_to_std_vector_string(cx, args.get(0), &vecPaths);
JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_FileUtils_setSearchPaths : Error processing arguments");
std::vector originPath; // for IOS platform.
@@ -175,8 +176,8 @@ bool runtime_FileUtils_setSearchPaths(JSContext *cx, uint32_t argc, jsval *vp)
}
cobj->setSearchPaths(vecPaths);
-
- JS_SET_RVAL(cx, vp, JSVAL_VOID);
+
+ args.rval().setUndefined();
return true;
}
@@ -184,20 +185,10 @@ bool runtime_FileUtils_setSearchPaths(JSContext *cx, uint32_t argc, jsval *vp)
return false;
}
-void register_FileUtils(JSContext *cx, JSObject *global) {
- JS::RootedValue nsval(cx);
- JS::RootedObject ns(cx);
- JS_GetProperty(cx, global, "cc", &nsval);
- if (nsval == JSVAL_VOID) {
- return;
- } else {
- JS_ValueToObject(cx, nsval, &ns);
- }
- global = ns;
-
- JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, global, "(function () { return cc.FileUtils.getInstance(); })()"));
- JS_DefineFunction(cx, tmpObj, "addSearchPath", runtime_FileUtils_addSearchPath, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE);
- JS_DefineFunction(cx, tmpObj, "setSearchPaths", runtime_FileUtils_setSearchPaths, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE);
+void register_FileUtils(JSContext* cx, JS::HandleObject global) {
+ JS::RootedObject proto(cx, jsb_cocos2d_FileUtils_prototype);
+ JS_DefineFunction(cx, proto, "addSearchPath", runtime_FileUtils_addSearchPath, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE);
+ JS_DefineFunction(cx, proto, "setSearchPaths", runtime_FileUtils_setSearchPaths, 1, JSPROP_PERMANENT | JSPROP_ENUMERATE);
}
void initRuntime()
diff --git a/tools/bindings-generator b/tools/bindings-generator
index b097bf6156..a4888131c2 160000
--- a/tools/bindings-generator
+++ b/tools/bindings-generator
@@ -1 +1 @@
-Subproject commit b097bf61564687d8c35d4b814bb64996dbb0d403
+Subproject commit a4888131c2aeb24b86ad8e1056f951310d02595c