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

Method visitObjectPropertyNames

valdi/src/valdi/v8/V8JavaScriptContext.cpp:732–762  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

730 return;
731 }
732
733 v8::Local<v8::Context> context = v8::Local<v8::Context>::New(_isolate, _context);
734 setObjectPropertyIndexHelper(context, obj, static_cast<uint32_t>(index), val, true, exceptionTracker);
735}
736
737JSValueRef V8JavaScriptContext::callObjectAsFunction(const JSValue& object, JSFunctionCallContext& callContext) {
738 SC_ABORT("callObjectAsFunction is not implemented");
739 return JSValueRef();
740}
741
742JSValueRef V8JavaScriptContext::callObjectAsConstructor(const JSValue& object, JSFunctionCallContext& callContext) {
743 SC_ABORT("callObjectAsConstructor is not implemented");
744 return JSValueRef();
745}
746
747void V8JavaScriptContext::visitObjectPropertyNames(const JSValue& object,
748 JSExceptionTracker& exceptionTracker,
749 IJavaScriptPropertyNamesVisitor& visitor) {
750 v8::HandleScope handleScope(_isolate);
751 auto obj = v8::Local<v8::Object>::Cast(fromValdiJSValue(_isolate, object, exceptionTracker));
752 if (!exceptionTracker) {
753 return;
754 }
755 if (!obj->IsObject()) {
756 exceptionTracker.onError("Cannot invoke visitObjectPropertyNames on a non object");
757 return;
758 }
759
760 v8::Local<v8::Context> context = v8::Local<v8::Context>::New(_isolate, _context);
761 v8::Local<v8::Array> properties;
762 if (!obj->GetPropertyNames(context).ToLocal(&properties)) {
763 exceptionTracker.onError("Cannot get property list from object");
764 return;
765 }

Callers 3

untypedJsObjectToValueFunction · 0.45
visitMapKeyValuesMethod · 0.45
mainFunction · 0.45

Calls 9

ToLocalMethod · 0.80
LengthMethod · 0.80
fromValdiJSValueFunction · 0.70
toValdiJSPropertyNameFunction · 0.70
onErrorMethod · 0.65
CastFunction · 0.50
NewFunction · 0.50
GetMethod · 0.45
visitPropertyNameMethod · 0.45

Tested by

no test coverage detected