Cover cfxjs_engine.cpp's CallHandler() success case.

Change-Id: I62df922ed62e00cc30d4179945e5eb4b6d2cc0d6
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/63510
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/testing/resources/javascript/icons.in b/testing/resources/javascript/icons.in
index 8f6ef4c..1b035db 100644
--- a/testing/resources/javascript/icons.in
+++ b/testing/resources/javascript/icons.in
@@ -26,6 +26,23 @@
             " and " + icon2_again.name);
   app.alert("but they are made anew each time since " +
              (icon1 == icon1_again) + " is returned from comparison");
+  app.alert("Prototype comparison is " + (icon1.__proto__ == icon1_again.__proto__));
+
+  // Icons are "dynamic" objects, so theoretically we can make them from
+  // the JS side as well, although they will not be bound on the fxjs side.
+  var dubious = new icon1.constructor();
+  app.alert("Made anew from JS side since comparison is " + (dubious == icon1));
+  app.alert("Prototype comparison is " + (dubious.__proto__ == icon1.__proto__));
+
+  // Can't retrieve the name because no fxjs binding present.
+  app.alert("Dubious name is " + dubious.name);
+
+  // No error setting the name because for an unbound object, control doesn't
+  // get far enough to reach the readonly check in the property handler.
+  dubious.name = "pebble";
+
+  // The previous was a silent no-op under the covers.
+  app.alert("name is unchanged from " + dubious.name);
 } catch (e) {
   app.alert("error: " + e);
 }
diff --git a/testing/resources/javascript/icons_expected.txt b/testing/resources/javascript/icons_expected.txt
index bace26d..833c28b 100644
--- a/testing/resources/javascript/icons_expected.txt
+++ b/testing/resources/javascript/icons_expected.txt
@@ -4,4 +4,9 @@
 Alert: they are named icon1 and icon2
 Alert: they are also named icon1 and icon2
 Alert: but they are made anew each time since false is returned from comparison
+Alert: Prototype comparison is true
+Alert: Made anew from JS side since comparison is false
+Alert: Prototype comparison is true
+Alert: Dubious name is undefined
+Alert: name is unchanged from undefined
 Alert: As expected, trying to change the name gave: Icon.name: Cannot assign to readonly property.