xref: /expo/android/vendored/sdk47/react-native-reanimated/Common/cpp/SharedItems/FrozenObject.cpp (revision 5bd7a65d)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "FrozenObject.h"
2 #include "RuntimeManager.h"
3 #include "ShareableValue.h"
4 #include "SharedParent.h"
5 
6 namespace reanimated {
7 
8 FrozenObject::FrozenObject(
9     jsi::Runtime &rt,
10     const jsi::Object &object,
11     RuntimeManager *runtimeManager) {
12   auto propertyNames = object.getPropertyNames(rt);
13   const size_t count = propertyNames.size(rt);
14   namesOrder.reserve(count);
15   for (size_t i = 0; i < count; i++) {
16     auto propertyName = propertyNames.getValueAtIndex(rt, i).asString(rt);
17     namesOrder.push_back(propertyName.utf8(rt));
18     std::string nameStr = propertyName.utf8(rt);
19     map[nameStr] = ShareableValue::adapt(
20         rt, object.getProperty(rt, propertyName), runtimeManager);
21     this->containsHostFunction |= map[nameStr]->containsHostFunction;
22   }
23 }
24 
25 jsi::Object FrozenObject::shallowClone(jsi::Runtime &rt) {
26   jsi::Object object(rt);
27   for (auto propName : namesOrder) {
28     auto value = map[propName];
29     object.setProperty(
30         rt, jsi::String::createFromUtf8(rt, propName), value->getValue(rt));
31   }
32   return object;
33 }
34 
35 } // namespace reanimated
36 

served by {OpenGrok

Last Index Update: Tue Oct 21 18:42:31 GMT 2025