@@ -25,6 +25,20 @@ using v8::String;
2525using v8::Uint32;
2626using v8::Value;
2727
28+ template <typename T>
29+ void StartHandleHistogram (Local<Value> receiver, bool reset) {
30+ T* histogram;
31+ ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
32+ histogram->OnStart (reset ? T::StartFlags::RESET : T::StartFlags::NONE );
33+ }
34+
35+ template <typename T>
36+ void StopHandleHistogram (Local<Value> receiver) {
37+ T* histogram;
38+ ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
39+ histogram->OnStop ();
40+ }
41+
2842Histogram::Histogram (const Options& options) {
2943 hdr_histogram* histogram;
3044 CHECK_EQ (0 , hdr_init (options.lowest ,
@@ -423,32 +437,25 @@ void IntervalHistogram::OnStop() {
423437}
424438
425439void IntervalHistogram::Start (const FunctionCallbackInfo<Value>& args) {
426- IntervalHistogram* histogram;
427- ASSIGN_OR_RETURN_UNWRAP (&histogram, args.This ());
428- histogram->OnStart (args[0 ]->IsTrue () ? StartFlags::RESET : StartFlags::NONE );
440+ StartHandleHistogram<IntervalHistogram>(args.This (), args[0 ]->IsTrue ());
429441}
430442
431443void IntervalHistogram::FastStart (Local<Value> receiver, bool reset) {
432444 TRACK_V8_FAST_API_CALL (" histogram.start" );
433- IntervalHistogram* histogram;
434- ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
435- histogram->OnStart (reset ? StartFlags::RESET : StartFlags::NONE );
445+ StartHandleHistogram<IntervalHistogram>(receiver, reset);
436446}
437447
438448void IntervalHistogram::Stop (const FunctionCallbackInfo<Value>& args) {
439- IntervalHistogram* histogram;
440- ASSIGN_OR_RETURN_UNWRAP (&histogram, args.This ());
441- histogram->OnStop ();
449+ StopHandleHistogram<IntervalHistogram>(args.This ());
442450}
443451
444452void IntervalHistogram::FastStop (Local<Value> receiver) {
445453 TRACK_V8_FAST_API_CALL (" histogram.stop" );
446- IntervalHistogram* histogram;
447- ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
448- histogram->OnStop ();
454+ StopHandleHistogram<IntervalHistogram>(receiver);
449455}
450456
451- Local<FunctionTemplate> IterationHistogram::GetConstructorTemplate (Environment* env) {
457+ Local<FunctionTemplate> IterationHistogram::GetConstructorTemplate (
458+ Environment* env) {
452459 Local<FunctionTemplate> tmpl = env->iterationhistogram_constructor_template ();
453460 if (tmpl.IsEmpty ()) {
454461 Isolate* isolate = env->isolate ();
@@ -515,7 +522,8 @@ void IterationHistogram::PrepareCB(uv_prepare_t* handle) {
515522}
516523
517524void IterationHistogram::CheckCB (uv_check_t * handle) {
518- IterationHistogram* self = ContainerOf (&IterationHistogram::check_handle_, handle);
525+ IterationHistogram* self =
526+ ContainerOf (&IterationHistogram::check_handle_, handle);
519527 if (!self->enabled_ ) return ;
520528
521529 uint64_t check_time = uv_hrtime ();
@@ -565,29 +573,21 @@ void IterationHistogram::Close(Local<Value> close_callback) {
565573}
566574
567575void IterationHistogram::Start (const FunctionCallbackInfo<Value>& args) {
568- IterationHistogram* histogram;
569- ASSIGN_OR_RETURN_UNWRAP (&histogram, args.This ());
570- histogram->OnStart (args[0 ]->IsTrue () ? StartFlags::RESET : StartFlags::NONE );
576+ StartHandleHistogram<IterationHistogram>(args.This (), args[0 ]->IsTrue ());
571577}
572578
573579void IterationHistogram::FastStart (Local<Value> receiver, bool reset) {
574580 TRACK_V8_FAST_API_CALL (" histogram.eventLoopDelay.start" );
575- IterationHistogram* histogram;
576- ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
577- histogram->OnStart (reset ? StartFlags::RESET : StartFlags::NONE );
581+ StartHandleHistogram<IterationHistogram>(receiver, reset);
578582}
579583
580584void IterationHistogram::Stop (const FunctionCallbackInfo<Value>& args) {
581- IterationHistogram* histogram;
582- ASSIGN_OR_RETURN_UNWRAP (&histogram, args.This ());
583- histogram->OnStop ();
585+ StopHandleHistogram<IterationHistogram>(args.This ());
584586}
585587
586588void IterationHistogram::FastStop (Local<Value> receiver) {
587589 TRACK_V8_FAST_API_CALL (" histogram.eventLoopDelay.stop" );
588- IterationHistogram* histogram;
589- ASSIGN_OR_RETURN_UNWRAP (&histogram, receiver);
590- histogram->OnStop ();
590+ StopHandleHistogram<IterationHistogram>(receiver);
591591}
592592
593593void HistogramImpl::GetCount (const FunctionCallbackInfo<Value>& args) {
@@ -753,7 +753,8 @@ HistogramImpl* HistogramImpl::FromJSObject(Local<Value> value) {
753753 HistogramImpl::kImplField , EmbedderDataTag::kDefault ));
754754}
755755
756- std::unique_ptr<worker::TransferData> IterationHistogram::CloneForMessaging () const {
756+ std::unique_ptr<worker::TransferData> IterationHistogram::CloneForMessaging ()
757+ const {
757758 return std::make_unique<HistogramBase::HistogramTransferData>(histogram ());
758759}
759760
0 commit comments