MCPcopy Create free account
hub / github.com/Snapchat/Valdi / marshall

Method marshall

valdi/src/valdi/runtime/JavaScript/JavaScriptValueMarshaller.cpp:89–108  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89Value JavaScriptValueMarshaller::marshall(const JSValueRef& jsValue,
90 const ValueSchema& valueSchema,
91 const ReferenceInfoBuilder& referenceInfoBuilder,
92 JSExceptionTracker& exceptionTracker) {
93 Ref<ValueMarshaller<JSValueRef>> valueMarshaller;
94
95 if (valueSchema.isClass()) {
96 // Leverage cache for classes
97 valueMarshaller = getValueMarshallerForClassSchema(valueSchema.getClassRef(), exceptionTracker);
98 } else {
99 auto valueMarshallerWithSchema = _marshallerRegistry.getValueMarshaller(valueSchema, exceptionTracker);
100 valueMarshaller = std::move(valueMarshallerWithSchema.valueMarshaller);
101 }
102
103 if (valueMarshaller == nullptr) {
104 return Value::undefined();
105 }
106
107 return valueMarshaller->marshall(nullptr, jsValue, referenceInfoBuilder, exceptionTracker);
108}
109
110void JavaScriptValueMarshaller::registerTypeConverter(const StringBox& typeName,
111 const JSValueRef& converter,

Callers 4

marshallObjectMethod · 0.45
nativeOnSuccessMethod · 0.45
pushToMarshallerMethod · 0.45

Calls 3

isClassMethod · 0.80
getClassRefMethod · 0.80
getValueMarshallerMethod · 0.45

Tested by

no test coverage detected