Откуда происходит `OpaqueJSValue` в` JavaScriptCore`? - PullRequest
0 голосов
/ 18 октября 2018

Я не могу найти определение OpaqueJSValue в JavaScriptCore framework.Только ценные подсказки об этом есть в Base.h и APICast.h (в обоих файлах один и тот же код):

typedef const struct OpaqueJSValue* JSValueRef;
typedef struct OpaqueJSValue* JSObjectRef;

Итак, мы знаем, что другие типы основаны на нем, но что такое OpaqueJSValue?Или, по крайней мере, откуда это?Где это определено?

Попытка прочитать значение OpaqueJSValue в отладчике приводит к ошибке, говорящей, что отладчик также не знает, что это такое:

(lldb) e *variable
error: incomplete type 'const OpaqueJSValue' where a complete type is required
forward declaration of 'OpaqueJSValue'

Гдепеременная JSValueRef типа, так что на самом деле const struct OpaqueJSValue*.

Я клонировал репозиторий с каркасом JavaScriptCore, libWTF и webkit, но я ничего не нашел в них.

Источники:


Я буду рад обновить заголовок и текст этого документа.вопрос, чтобы сделать его более наглядным и легким для поиска, однако, поскольку я действительно понятия не имею, что такое OpaqueJSValue и как оно работает, я не могу спросить об этом более конкретно.

1 Ответ

0 голосов
/ 26 февраля 2019

Нет определения OpaqueJSValue.На самом деле JSValueRef - просто непрозрачный указатель, и есть некоторые преобразования между JSValueRef и JSC :: JSValue, как вы можете видеть в «API \ APICast.h».JSC :: JSValue является внутренней структурой данных.

...