@@ -47,7 +47,6 @@ using v8::Isolate;
4747using  v8::Local;
4848using  v8::LocalVector;
4949using  v8::MaybeLocal;
50- using  v8::Name;
5150using  v8::Object;
5251using  v8::ScriptCompiler;
5352using  v8::String;
@@ -338,16 +337,18 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
338337 auto  space_stats_tmpl = env->space_stats_template ();
339338 auto  heap_stats_tmpl = env->v8_heap_statistics_template ();
340339 if  (object_stats_template.IsEmpty ()) {
341-  std::string_view object_stats_names[] = {" allocated_bytes"  , " object_count"  };
340+  static  constexpr  std::string_view object_stats_names[] = {" allocated_bytes"  ,
341+  " object_count"  };
342342 object_stats_template =
343343 DictionaryTemplate::New (isolate, object_stats_names);
344344 env->set_object_stats_template (object_stats_template);
345345 }
346346 if  (page_stats_tmpl.IsEmpty ()) {
347-  std::string_view page_stats_names[] = {" committed_size_bytes"  ,
348-  " resident_size_bytes"  ,
349-  " used_size_bytes"  ,
350-  " object_statistics"  };
347+  static  constexpr  std::string_view page_stats_names[] = {
348+  " committed_size_bytes"  ,
349+  " resident_size_bytes"  ,
350+  " used_size_bytes"  ,
351+  " object_statistics"  };
351352 page_stats_tmpl = DictionaryTemplate::New (isolate, page_stats_names);
352353 env->set_page_stats_template (page_stats_tmpl);
353354 }
@@ -359,21 +360,23 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
359360 env->set_free_list_statistics_template (free_list_statistics_template);
360361 }
361362 if  (space_stats_tmpl.IsEmpty ()) {
362-  std::string_view space_stats_names[] = {" name"  ,
363-  " committed_size_bytes"  ,
364-  " resident_size_bytes"  ,
365-  " used_size_bytes"  ,
366-  " page_stats"  ,
367-  " free_list_stats"  };
363+  static  constexpr  std::string_view space_stats_names[] = {
364+  " name"  ,
365+  " committed_size_bytes"  ,
366+  " resident_size_bytes"  ,
367+  " used_size_bytes"  ,
368+  " page_stats"  ,
369+  " free_list_stats"  };
368370 space_stats_tmpl = DictionaryTemplate::New (isolate, space_stats_names);
369371 env->set_space_stats_template (space_stats_tmpl);
370372 }
371373 if  (heap_stats_tmpl.IsEmpty ()) {
372-  std::string_view heap_statistics_names[] = {" committed_size_bytes"  ,
373-  " resident_size_bytes"  ,
374-  " used_size_bytes"  ,
375-  " space_statistics"  ,
376-  " type_names"  };
374+  static  constexpr  std::string_view heap_statistics_names[] = {
375+  " committed_size_bytes"  ,
376+  " resident_size_bytes"  ,
377+  " used_size_bytes"  ,
378+  " space_statistics"  ,
379+  " type_names"  };
377380 heap_stats_tmpl = DictionaryTemplate::New (isolate, heap_statistics_names);
378381 env->set_v8_heap_statistics_template (heap_stats_tmpl);
379382 }
@@ -398,8 +401,12 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
398401 isolate, static_cast <uint32_t >(object_stats.allocated_bytes )),
399402 Uint32::NewFromUnsigned (
400403 isolate, static_cast <uint32_t >(object_stats.object_count ))};
401-  Local<Object> object_stats_object =
402-  object_stats_template->NewInstance (context, object_stats_values);
404+  Local<Object> object_stats_object;
405+  if  (!NewDictionaryInstance (
406+  context, object_stats_template, object_stats_values)
407+  .ToLocal (&object_stats_object)) {
408+  return  MaybeLocal<Object>();
409+  }
403410 object_statistics_array.emplace_back (object_stats_object);
404411 }
405412
@@ -414,8 +421,12 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
414421 Array::New (isolate,
415422 object_statistics_array.data (),
416423 object_statistics_array.size ())};
417-  page_statistics_array.emplace_back (
418-  page_stats_tmpl->NewInstance (context, page_stats_values));
424+  Local<Object> page_stats_object;
425+  if  (!NewDictionaryInstance (context, page_stats_tmpl, page_stats_values)
426+  .ToLocal (&page_stats_object)) {
427+  return  MaybeLocal<Object>();
428+  }
429+  page_statistics_array.emplace_back (page_stats_object);
419430 }
420431
421432 //  Free List Statistics
@@ -427,9 +438,13 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
427438 ToV8ValuePrimitiveArray (
428439 context, space_stats.free_list_stats .free_size , isolate)};
429440
430-  Local<Object> free_list_statistics_obj =
431-  free_list_statistics_template->NewInstance (context,
432-  free_list_statistics_values);
441+  Local<Object> free_list_statistics_obj;
442+  if  (!NewDictionaryInstance (context,
443+  free_list_statistics_template,
444+  free_list_statistics_values)
445+  .ToLocal (&free_list_statistics_obj)) {
446+  return  MaybeLocal<Object>();
447+  }
433448
434449 //  Set Space Statistics
435450 Local<Value> name_value;
@@ -453,8 +468,12 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
453468 page_statistics_array.size ()),
454469 free_list_statistics_obj,
455470 };
456-  space_statistics_array.emplace_back (
457-  space_stats_tmpl->NewInstance (context, space_stats_values));
471+  Local<Object> space_stats_object;
472+  if  (!NewDictionaryInstance (context, space_stats_tmpl, space_stats_values)
473+  .ToLocal (&space_stats_object)) {
474+  return  MaybeLocal<Object>();
475+  }
476+  space_statistics_array.emplace_back (space_stats_object);
458477 }
459478
460479 Local<Value> type_names_value;
@@ -474,7 +493,8 @@ static MaybeLocal<Object> ConvertHeapStatsToJSObject(
474493 space_statistics_array.size ()),
475494 type_names_value};
476495
477-  return  heap_stats_tmpl->NewInstance (context, heap_statistics_values);
496+  return  NewDictionaryInstance (
497+  context, heap_stats_tmpl, heap_statistics_values);
478498}
479499
480500static  void  GetCppHeapStatistics (const  FunctionCallbackInfo<Value>& args) {
0 commit comments