Skip to content

Commit 757db7d

Browse files
committed
chore: cleanup
1 parent 1178678 commit 757db7d

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

NativeScript/runtime/ArgConverter.mm

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include <Foundation/Foundation.h>
22
#include <sstream>
3+
#include <unordered_set>
34
#include "ArgConverter.h"
45
#include "NativeScriptException.h"
56
#include "DictionaryAdapter.h"
@@ -37,8 +38,13 @@
3738
const char* selectorStr = meta ? meta->selectorAsString() : "<unknown>";
3839
const char* jsNameStr = meta ? meta->jsName() : "<unknown>";
3940
const char* classNameStr = klass ? class_getName(klass) : "<unknown>";
40-
Log(@"ArgConverter::Invoke: ignore method on non-native receiver (class: %s, selector: %s, jsName: %s, args: %d). Common during HMR.",
41-
classNameStr, selectorStr, jsNameStr, (int)args.Length());
41+
// Suppress duplicate logs: only log once per class+selector for this process.
42+
static std::unordered_set<std::string> s_logged;
43+
std::string key = std::string(classNameStr) + ":" + selectorStr;
44+
if (s_logged.insert(key).second) {
45+
Log(@"Note: ignore method on non-native receiver (class: %s, selector: %s, jsName: %s, args: %d). Common during HMR.",
46+
classNameStr, selectorStr, jsNameStr, (int)args.Length());
47+
}
4248
return v8::Undefined(isolate);
4349
} else {
4450
tns::Assert(false, isolate);
@@ -63,8 +69,13 @@
6369
const char* selectorStr = meta ? meta->selectorAsString() : "<unknown>";
6470
const char* jsNameStr = meta ? meta->jsName() : "<unknown>";
6571
const char* classNameStr = klass ? class_getName(klass) : "<unknown>";
66-
Log(@"ArgConverter::Invoke: unexpected receiver wrapper type %d (class: %s, selector: %s, jsName: %s). Skipping in DEBUG.",
67-
(int)wrapper->Type(), classNameStr, selectorStr, jsNameStr);
72+
// Suppress duplicate logs: only log once per class+selector for this process.
73+
static std::unordered_set<std::string> s_logged;
74+
std::string key = std::string(classNameStr) + ":" + selectorStr;
75+
if (s_logged.insert(key).second) {
76+
Log(@"Note: ignore receiver wrapper type %d (class: %s, selector: %s, jsName: %s). Common during HMR.",
77+
(int)wrapper->Type(), classNameStr, selectorStr, jsNameStr);
78+
}
6879
return v8::Undefined(isolate);
6980
} else {
7081
tns::Assert(false, isolate);

0 commit comments

Comments
 (0)