'Error compiling builtin' 在 JavaScript 核心中执行 JavaScript 代码时

'Error compiling builtin' while executing JavaScript code in JavaScriptCore

我使用 JavaScriptCore 框架在 iOS 中执行以下 javascript 代码。 javascript 代码是浏览器化的。

var myCallback = undefined;

*browserify logic*
{
 1: [function(require, module, exports) {

     var q = require('./user');

     var p = new Promise(function(resolved, reject) {
                            myCallback = function() {
                                resolved('test');
                            }
                         });

     p.then(function(x) {printFunc('test');}).catch(function(e){printFunc('test2');});

     q();

     }, {
     "./user": 2
     }],
 2: [function(require, module, exports) {
     function q() {
        printFunc("Callback called!");
        myCallback();
        printFunc("Callback called end!");
     }
     module.exports = q;
     }, {}]
 }, {}, [1]);

printFunc 是在 Swift 中实现的一种方法,它只打印一些内容到控制台。这是实现:

    let printFunction : @convention(block) (String) -> String = {input in
        print("|\(input)|")
        return ""
    }

问题是我收到以下错误:

|Callback called!|
Error compiling builtin: Invalid private name '@capabilities'
|Callback called end!|

更奇怪的是,如果我删除打印 "Callback called!" 和 "Callback called end!" 代码执行时没有错误并打印 "test".

你们遇到过这种奇怪的行为吗?这是 Promise 实现的已知错误吗?

这是 JavascriptCore 的 Promise 实现中的错误。我在苹果开工单,确认了。

解决方法是使用您自己的 Promise 实现。