@@ -18,6 +18,13 @@ namespace m = ::facebook::hermes::cdp::message;
18
18
19
19
constexpr size_t kMaxPreviewProperties = 10 ;
20
20
21
+ static bool isObjectInstanceOfError (
22
+ const jsi::Object &obj,
23
+ facebook::jsi::Runtime &runtime) {
24
+ return obj.instanceOf (
25
+ runtime, runtime.global ().getPropertyAsFunction (runtime, " Error" ));
26
+ }
27
+
21
28
static m::runtime::PropertyPreview generatePropertyPreview (
22
29
facebook::jsi::Runtime &runtime,
23
30
const std::string &name,
@@ -309,6 +316,16 @@ m::runtime::RemoteObject m::runtime::makeRemoteObject(
309
316
if (options.generatePreview ) {
310
317
result.preview = generateArrayPreview (runtime, array);
311
318
}
319
+ } else if (isObjectInstanceOfError (obj, runtime)) {
320
+ result.type = " object" ;
321
+ result.subtype = " error" ;
322
+ // T198854404 we should report subclasses of Error here, e.g. TypeError
323
+ result.className = " Error" ;
324
+ result.description =
325
+ obj.getProperty (runtime, " stack" ).toString (runtime).utf8 (runtime);
326
+ if (options.generatePreview ) {
327
+ result.preview = generateObjectPreview (runtime, obj);
328
+ }
312
329
} else {
313
330
result.type = " object" ;
314
331
result.description = result.className = " Object" ;
0 commit comments