diff --git a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h index 35d072b21a..8e0456e36e 100644 --- a/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h +++ b/DesktopEditor/doctrenderer/js_internal/v8/v8_base.h @@ -452,12 +452,17 @@ namespace NSJSBase v8::Local names = value->GetPropertyNames(context).ToLocalChecked(); uint32_t len = names->Length(); - std::vector ret(len); + std::vector ret; for (uint32_t i = 0; i < len; i++) { + v8::Local propertyName = names->Get(context, i).ToLocalChecked(); + v8::Local propertyValue = value->Get(context, propertyName).ToLocalChecked(); + // skip undefined properties + if (propertyValue->IsUndefined()) + continue; CJSValueV8 _value; - _value.value = names->Get(context, i).ToLocalChecked(); - ret[i] = _value.toStringA(); + _value.value = propertyName; + ret.push_back(_value.toStringA()); } return ret;