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

Method newWrappedObject

valdi/src/valdi/v8/V8JavaScriptContext.cpp:491–508  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

489}
490
491JSValueRef V8JavaScriptContext::newWrappedObject(const Ref<RefCountable>& wrappedObject,
492 JSExceptionTracker& exceptionTracker) {
493 v8::HandleScope handleScope(_isolate);
494 v8::Local<v8::Context> context = v8::Local<v8::Context>::New(_isolate, _context);
495
496 auto valdiObjectTemplate = _valdiObjectTemplate.Get(_isolate);
497 v8::Local<v8::Object> val;
498 if (!valdiObjectTemplate->NewInstance(context).ToLocal(&val)) {
499 exceptionTracker.onError("Cannot create wrapper object");
500 return JSValueRef();
501 }
502
503 auto externalData =
504 IndirectV8Persistent::makeWeakExternal(_isolate, unsafeBridgeRetain(wrappedObject.get()), freeWrappedPointer);
505
506 val->SetInternalField(static_cast<int>(InternalFieldSlot::DataSlot), externalData);
507 return toRetainedJSValueRef(IndirectV8Persistent::make(_isolate, val));
508}
509
510JSValueRef V8JavaScriptContext::newNativeClass(const Ref<RefCountable>& /*classOpaque*/,
511 const JSClassDefinition& /*classDefinition*/,

Callers 5

makeOpaqueFunction · 0.45
makeWrappedObjectFunction · 0.45
runtimeCreateWorkerMethod · 0.45

Calls 6

unsafeBridgeRetainFunction · 0.85
ToLocalMethod · 0.80
onErrorMethod · 0.65
getMethod · 0.65
NewFunction · 0.50
GetMethod · 0.45

Tested by

no test coverage detected