Releases: Tencent/puerts
Unreal_v1.0.2
mac下如果遇到移入废纸篓问题,请
cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine
新增特性
-
手机nodejs后端支持
-
静态绑定支持bound array( 例如:int ba[10])字段,支持void *
-
静态绑定支持仅声明无定义类的注册
-
静态绑定支持“重载+默认参数”
-
静态绑定增加对script type的const T*的支持
-
const char*支持通过ArrayBuffer传递
-
自创建的JsEnv也能支持代码热刷新
-
支持std::function的函数签名声明生成
-
静态绑定添加ExtensionMethod(类似C#)的支持
-
静态绑定添加TSharedPtr的支持
-
nodejs版本支持代码热刷新
-
静态绑定支持运行时获取typeid
优化
-
编辑器下虚拟机重置时,大量对象需要加载js脚本而导致启动速度慢的问题
-
通过对BackingStore封装,支持编辑器下的结构体gc优化
-
JsEnv.Start统一改为通过require来加载,让初始脚本和其它脚本一致(debug、热刷新等)
-
增量生成蓝图的ue.d.ts声明,解决业务连带资源过多,导致生成太慢的问题
变更
- 无
bug修复
-
解决开启ThreadSafe选项后,由ts触发ue gc可能会导致死锁的问题
-
解决将std map替换成tmap后( b823ab9 ),tmap可能会因为插入操作而导致外部查找结果失效的问题
-
解决release编译,由于同签名函数的CFunctionInfoImpl合并成一个导致生成d.ts的默认值个数不对的问题
-
修复符合继承类格式,但是继承的不是UE类型而是ts原生类型时导致的报错
-
稳定性增强,对FV8Utils::GetUObject返回的对象增加无效指针判断
-
previewworld下找不到jsobject的报错
-
解决UE静态绑定使用了cpp模块里头的类型作为字段,ue.d.ts报错的问题
-
静态绑定的静态属性生成ue.d.ts时崩溃的问题
-
SignatureFunction所在内存被重用,导致FFunctionTranslator访问无效UFunction导致崩溃
-
修复DynamicInvoker被多线程访问导致的问题
-
解决容器(或者其它非POD UStruct)引用参数用$ref(undefined)传递时、内存泄漏的问题
-
解压容器反射因为字节对齐问题导致的崩溃
-
解决mixin特性在非运行状态使用,如果编辑器触发保存会触发蓝图非法断言的问题
安装包使用说明
-
puerts_v8.tgz: v8版本,适用于ue4.25及以上版本
-
puerts_v8_for_ue424_or_below.tgz,v8版本,适用于ue4.24及以下版本
-
puerts_nodejs.tgz:nodejs版本
-
puerts_quickjs.tgz:quickjs版本
Unity_v1.3.8,ApiLevel:16
中文版本请查看 doc/unity/zhcn/changelog.md
- fix: didn't check NativeObject's type when setting fields. #954
- fix: easy to cause
task.GetAwaiter(...).OnCompleted is not a function
error in Unity's Ilcpp mode #966 - optimize: the memory usage for JSObject #947
- optimize: disable setting constructor's BindingMode to Lazy
- optimize: disable reflect extension feature in Editor's Playmode
difference between Node.js/Quickjs/V8: wiki
Unity_v1.3.7,ApiLevel:16
Unity_v1.4.0-preview.6,ApiLevel:17
中文版本请查看 doc/unity/zhcn/changelog.md
- support multi inspector client
- fix the inspector crash problem in unity2021.3.4+
- fix #708
- disable generic wrapper in unity2018-
difference between Node.js/Quickjs/V8: wiki
Unity_v1.4.0-preview.5,ApiLevel:17
中文版本请查看 doc/unity/zhcn/changelog.md
difference between Node.js/Quickjs/V8: wiki
Unity_v1.3.6,ApiLevel:16
中文版本请查看 doc/unity/changelog.md
- fix: UnityMenu.cs code bug fix.
- fix: thrown error when generating generic type with constrained generic argument.
difference between Node.js/Quickjs/V8: wiki
Unity_v1.3.5,ApiLevel:16
中文版本请查看 doc/unity/changelog.md
- fix: duplicated key error during generating: #657
- fix: cannot $generic a Type with Enum #856
- fix: did not filter the pointer type in delegate during generating: #857
- fix: in the d.ts, the return type of an interface's extension method would be wrong: #857
- fix: do not generate extension method for enum #857
- fix: some order of parameters with ArrayBuffer will throw an Error. #853
- feature: support invoking generic method without constraint: #819
- feature: the wrapper file of a generic type can now combine into one single file. #816
- feature: TypedValue can now pass to the argument of the corresponding type. #833
- optimize: add a reusable Github action for downloading JS backend artifact.
- optimize: can download the backend file by a URL in action.
difference between Node.js/Quickjs/V8: wiki
Unreal_v1.0.1
mac下如果遇到移入废纸篓问题,请
cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine
新增特性
-
多线程安全
-
蓝图mixin功能
-
支持UE本地化工作流
-
原生类型强校验
-
静态绑定支持默认值
-
静态绑定支持静态变量
-
静态绑定支持const char*、const TCHAR*参数
-
静态绑定支持数组类型及std::string的指针,映射到ts的$Ref
-
静态绑定引用类型的性能优化
-
UE5.0正式版的支持
-
添加blueprint.load,blueprint.unload,blueprint.tojs
-
嵌套结构体(第一个字段嵌套)性能优化
-
添加gc相关接口:IdleNotificationDeadline、RequestMinorGarbageCollectionForTesting、RequestFullGarbageCollectionForTesting
-
添加FName的ArrayBuffer表达支持,可优化字符串字面值FName的传输
-
enum添加支持反向映射
-
ts生成的蓝图的路径改为可以通过宏来修改
-
内部优化:关键路径std::map -> TMap
-
新增导出DTS时 Ignore Struct、Class 的配置
-
ts_file_versions_info.json的版本号处理优化
-
DefaultJSModuleLoader的一些函数改为虚函数,可被继承和覆盖
-
把模块的search以及load阶段分开,优化大文件模块会重复读取的问题,某大型项目实测加载性能提升3倍
-
Puerts.Gen增加STRUCT,ENUM,ALL参数
-
继承ue类支持使用枚举
-
容器支持GetRef
-
新增“持有结构体指针时,阻止父节点回收”功能
变更
-
非编辑器不调用TS的构造函数
-
原生类型改为强校验
-
默认对蓝图枚举生成声明
-
ts声明中,UStruct的StaticClass改为StaticStruct,和C++对齐
-
去掉生成蓝图ts里,参数用TArray的报错
bug修复
-
解决nodejs版本异步实例化wasm一直没回调的问题
-
解决ts文件被锁定,编译时死循环的问题
-
一个文件变更触发整个ts工程读取两遍的性能问题
-
数字作为name的蓝图枚举,生成的ts声明报错
-
修复当尝试ts继承一个ustruct的时候,编辑器崩溃的问题
-
解决静态绑定const UStruct*参数声明生成语法错误的问题
-
nodejs版本打包后,程序退出时崩溃
-
结构体类型的字段访问的内存泄漏
-
静态绑定含结构体字段的结构体(比如FBox2d)的首字段的字段访问失败
Unity_v1.4.0-preview.1,ApiLevel:17
中文版本请查看 doc/unity/zhcn/changelog.md
- support apple silicon #591
- upgrade the default v8 to 9.4,nodejs to 16
- make all members become configurable #667
- add
require('puerts').getLastException
to get the Error instance #629 - change LC_RPATH setter to support apple silicon
difference between Node.js/Quickjs/V8: wiki
Unity_v1.3.4,ApiLevel:16
中文版本请查看 doc/unity/changelog.md
- the module
csharp
in d.ts will useexport =
just like what Node.js did #750 - fix: ignored assemblies which path is with
Editor
when generating extension method #735 - add try catch for builtin script running. and will destroy the jsengine when error is thrown.
- the Debug build of Plugin will now have the
global.gc
function.
difference between Node.js/Quickjs/V8: wiki