@@ -482,6 +482,53 @@ void SetFastMethodNoSideEffect(Isolate* isolate,
482482 that->Set (name_string, t);
483483}
484484
485+ void SetFastMethod (Isolate* isolate,
486+ Local<Template> that,
487+ const std::string_view name,
488+ v8::FunctionCallback slow_callback,
489+ const v8::MemorySpan<const v8::CFunction>& methods) {
490+ Local<v8::FunctionTemplate> t = FunctionTemplate::NewWithCFunctionOverloads (
491+ isolate,
492+ slow_callback,
493+ Local<Value>(),
494+ Local<v8::Signature>(),
495+ 0 ,
496+ v8::ConstructorBehavior::kThrow ,
497+ v8::SideEffectType::kHasSideEffect ,
498+ methods);
499+
500+ // kInternalized strings are created in the old space.
501+ const v8::NewStringType type = v8::NewStringType::kInternalized ;
502+ Local<v8::String> name_string =
503+ v8::String::NewFromUtf8 (isolate, name.data (), type, name.size ())
504+ .ToLocalChecked ();
505+ that->Set (name_string, t);
506+ }
507+
508+ void SetFastMethodNoSideEffect (
509+ Isolate* isolate,
510+ Local<Template> that,
511+ const std::string_view name,
512+ v8::FunctionCallback slow_callback,
513+ const v8::MemorySpan<const v8::CFunction>& methods) {
514+ Local<v8::FunctionTemplate> t = FunctionTemplate::NewWithCFunctionOverloads (
515+ isolate,
516+ slow_callback,
517+ Local<Value>(),
518+ Local<v8::Signature>(),
519+ 0 ,
520+ v8::ConstructorBehavior::kThrow ,
521+ v8::SideEffectType::kHasNoSideEffect ,
522+ methods);
523+
524+ // kInternalized strings are created in the old space.
525+ const v8::NewStringType type = v8::NewStringType::kInternalized ;
526+ Local<v8::String> name_string =
527+ v8::String::NewFromUtf8 (isolate, name.data (), type, name.size ())
528+ .ToLocalChecked ();
529+ that->Set (name_string, t);
530+ }
531+
485532void SetMethodNoSideEffect (Local<v8::Context> context,
486533 Local<v8::Object> that,
487534 const std::string_view name,
0 commit comments