Lines Matching refs:rt
25 jsi::Runtime &rt, in addHiddenProperty() argument
29 jsi::Object globalObject = rt.global().getPropertyAsObject(rt, "Object"); in addHiddenProperty()
31 globalObject.getPropertyAsFunction(rt, "defineProperty"); in addHiddenProperty()
32 jsi::String internalPropName = jsi::String::createFromUtf8(rt, name); in addHiddenProperty()
33 jsi::Object paramForDefineProperty(rt); in addHiddenProperty()
34 paramForDefineProperty.setProperty(rt, "enumerable", false); in addHiddenProperty()
35 paramForDefineProperty.setProperty(rt, "value", value); in addHiddenProperty()
36 defineProperty.call(rt, obj, internalPropName, paramForDefineProperty); in addHiddenProperty()
39 void freeze(jsi::Runtime &rt, const jsi::Object &obj) { in freeze() argument
40 jsi::Object globalObject = rt.global().getPropertyAsObject(rt, "Object"); in freeze()
41 jsi::Function freeze = globalObject.getPropertyAsFunction(rt, "freeze"); in freeze()
42 freeze.call(rt, obj); in freeze()
45 void ShareableValue::adaptCache(jsi::Runtime &rt, const jsi::Value &value) { in adaptCache() argument
49 if (RuntimeDecorator::isWorkletRuntime(rt)) { in adaptCache()
51 remoteValue = getWeakRef(rt); in adaptCache()
53 (*remoteValue.lock()) = jsi::Value(rt, value); in adaptCache()
55 hostValue = std::make_unique<jsi::Value>(rt, value); in adaptCache()
60 jsi::Runtime &rt, in adapt() argument
64 jsi::Object object = value.asObject(rt); in adapt()
65 jsi::Value hiddenValue = object.getProperty(rt, HIDDEN_HOST_OBJECT_PROP); in adapt()
67 jsi::Object hiddenProperty = hiddenValue.asObject(rt); in adapt()
68 if (hiddenProperty.isHostObject<FrozenObject>(rt)) { in adapt()
70 if (object.hasProperty(rt, "__workletHash") && object.isFunction(rt)) { in adapt()
74 hiddenProperty.getHostObject<FrozenObject>(rt)); in adapt()
75 if (object.hasProperty(rt, ALREADY_CONVERTED)) { in adapt()
76 adaptCache(rt, value); in adapt()
87 rt, value, runtimeManager, runtimeManager->scheduler)); in adapt()
101 std::make_unique<StringValueWrapper>(value.asString(rt).utf8(rt)); in adapt()
103 auto object = value.asObject(rt); in adapt()
104 if (object.isFunction(rt)) { in adapt()
105 if (object.getProperty(rt, "__workletHash").isUndefined()) { in adapt()
111 jsi::Value primalFunction = object.getProperty(rt, PRIMAL_FUNCTION); in adapt()
113 jsi::Object handlerAsObject = primalFunction.asObject(rt); in adapt()
115 handlerAsObject.getHostObject<HostFunctionHandler>(rt); in adapt()
120 std::make_shared<jsi::Function>(object.asFunction(rt)), rt)); in adapt()
127 std::make_shared<FrozenObject>(rt, object, runtimeManager)); in adapt()
130 if (RuntimeDecorator::isReactRuntime(rt) && !containsHostFunction) { in adapt()
132 rt, in adapt()
133 createHost(rt, frozenObject), in adapt()
138 } else if (object.isArray(rt)) { in adapt()
140 auto array = object.asArray(rt); in adapt()
143 for (size_t i = 0, size = array.size(rt); i < size; i++) { in adapt()
144 auto sv = adapt(rt, array.getValueAtIndex(rt, i), runtimeManager); in adapt()
148 } else if (object.isHostObject<MutableValue>(rt)) { in adapt()
151 object.getHostObject<MutableValue>(rt)); in adapt()
152 adaptCache(rt, value); in adapt()
153 } else if (object.isHostObject<RemoteObject>(rt)) { in adapt()
156 object.getHostObject<RemoteObject>(rt)); in adapt()
157 adaptCache(rt, value); in adapt()
162 rt, object, runtimeManager, runtimeManager->scheduler)); in adapt()
167 std::make_shared<FrozenObject>(rt, object, runtimeManager)); in adapt()
170 if (RuntimeDecorator::isReactRuntime(rt)) { in adapt()
173 rt, in adapt()
174 createHost(rt, frozenObject), in adapt()
178 freeze(rt, object); in adapt()
184 std::make_unique<StringValueWrapper>(value.asSymbol(rt).toString(rt)); in adapt()
191 jsi::Runtime &rt, in adapt() argument
197 sv->adapt(rt, value, valueType); in adapt()
201 jsi::Value ShareableValue::getValue(jsi::Runtime &rt) { in getValue() argument
204 if (&rt == runtimeManager->runtime.get()) { in getValue()
208 remoteValue = getWeakRef(rt); in getValue()
212 (*remoteValue.lock()) = toJSValue(rt); in getValue()
214 return jsi::Value(rt, *remoteValue.lock()); in getValue()
219 hostValue = std::make_unique<jsi::Value>(toJSValue(rt)); in getValue()
221 return jsi::Value(rt, *hostValue); in getValue()
226 jsi::Runtime &rt, in createHost() argument
228 return jsi::Object::createFromHostObject(rt, host); in createHost()
232 jsi::Runtime &rt, in createFrozenWrapper() argument
235 jsi::Object::createFromHostObject(rt, frozenObject); in createFrozenWrapper()
236 jsi::Object obj = frozenObject->shallowClone(rt); in createFrozenWrapper()
237 jsi::Object globalObject = rt.global().getPropertyAsObject(rt, "Object"); in createFrozenWrapper()
238 jsi::Function freeze = globalObject.getPropertyAsFunction(rt, "freeze"); in createFrozenWrapper()
241 rt, std::move(__reanimatedHiddenHost), obj, HIDDEN_HOST_OBJECT_PROP); in createFrozenWrapper()
242 addHiddenProperty(rt, true, obj, ALREADY_CONVERTED); in createFrozenWrapper()
244 return freeze.call(rt, obj); in createFrozenWrapper()
247 jsi::Value ShareableValue::toJSValue(jsi::Runtime &rt) { in toJSValue() argument
259 return jsi::Value(rt, jsi::String::createFromUtf8(rt, stringValue)); in toJSValue()
263 return createFrozenWrapper(rt, frozenObject); in toJSValue()
267 jsi::Array array(rt, frozenArray.size()); in toJSValue()
269 array.setValueAtIndex(rt, i, frozenArray[i]->toJSValue(rt)); in toJSValue()
275 if (RuntimeDecorator::isWorkletRuntime(rt)) { in toJSValue()
276 remoteObject->maybeInitializeOnWorkletRuntime(rt); in toJSValue()
278 return createHost(rt, remoteObject); in toJSValue()
282 return createHost(rt, mutableObject); in toJSValue()
288 if (hostRuntime == &rt) { in toJSValue()
292 rt, *hostFunctionWrapper->value->getPureFunction().get()); in toJSValue()
301 jsi::Runtime &rt, in toJSValue()
305 jsi::Value jsThis = rt.global().getProperty(rt, "jsThis"); in toJSValue()
306 std::string workletLocation = jsThis.asObject(rt) in toJSValue()
307 .getProperty(rt, "__location") in toJSValue()
308 .toString(rt) in toJSValue()
309 .utf8(rt); in toJSValue()
327 jsi::Runtime &rt, in toJSValue() argument
337 ShareableValue::adapt(rt, args[i], runtimeManager)); in toJSValue()
359 rt, jsi::PropNameID::forAscii(rt, "hostFunction"), 0, warnFunction); in toJSValue()
361 rt, jsi::PropNameID::forAscii(rt, "hostFunction"), 0, clb); in toJSValue()
362 addHiddenProperty(rt, std::move(res), wrapperFunction, CALL_ASYNC); in toJSValue()
364 createHost(rt, hostFunctionWrapper->value); in toJSValue()
366 rt, std::move(functionHandler), wrapperFunction, PRIMAL_FUNCTION); in toJSValue()
373 if (RuntimeDecorator::isWorkletRuntime(rt)) { in toJSValue()
379 runtimeManager->workletsCache->getFunction(rt, frozenObject)); in toJSValue()
380 auto name = funPtr->getProperty(rt, "name").asString(rt).utf8(rt); in toJSValue()
382 auto clb = [=](jsi::Runtime &rt, in toJSValue()
387 jsi::String::createFromAscii(rt, "jsThis"); in toJSValue()
388 jsi::Object global = rt.global(); in toJSValue()
389 jsi::Value oldJSThis = global.getProperty(rt, jsThisName); in toJSValue()
390 global.setProperty(rt, jsThisName, *jsThis); // set jsThis in toJSValue()
396 funPtr->callWithThis(rt, thisValue.asObject(rt), args, count); in toJSValue()
398 res = funPtr->call(rt, args, count); in toJSValue()
408 throw jsi::JSError(rt, "Javascript worklet error"); in toJSValue()
411 jsi::Value location = jsThis->getProperty(rt, "__location"); in toJSValue()
414 str += "\nIn file: " + location.asString(rt).utf8(rt); in toJSValue()
419 global.setProperty(rt, jsThisName, oldJSThis); // clean jsThis in toJSValue()
423 rt, jsi::PropNameID::forAscii(rt, name.c_str()), 0, clb); in toJSValue()
426 auto clb = [=](jsi::Runtime &rt, in toJSValue()
436 ShareableValue::adapt(rt, args[i], runtimeManager)); in toJSValue()
440 jsi::Runtime &rt = *runtimeManager->runtime.get(); in toJSValue() local
441 auto jsThis = createFrozenWrapper(rt, frozenObject).getObject(rt); in toJSValue()
443 jsThis.getProperty(rt, "asString").asString(rt).utf8(rt); in toJSValue()
445 runtimeManager->workletsCache->getFunction(rt, frozenObject)); in toJSValue()
449 args[i] = params[i]->getValue(rt); in toJSValue()
454 jsi::String::createFromAscii(rt, "jsThis"); in toJSValue()
455 jsi::Object global = rt.global(); in toJSValue()
456 jsi::Value oldJSThis = global.getProperty(rt, jsThisName); in toJSValue()
457 global.setProperty(rt, jsThisName, jsThis); // set jsThis in toJSValue()
460 rt, in toJSValue()
471 throw jsi::JSError(rt, "Javascript worklet error"); in toJSValue()
474 jsi::Value location = jsThis.getProperty(rt, "__location"); in toJSValue()
477 str += "\nIn file: " + location.asString(rt).utf8(rt); in toJSValue()
482 global.setProperty(rt, jsThisName, oldJSThis); // clean jsThis in toJSValue()
490 rt, jsi::PropNameID::forAscii(rt, "_workletFunction"), 0, clb); in toJSValue()