idlharness.js shouldn't apply checks for interfaces to callback interfaces (#36135)
diff --git a/resources/idlharness.js b/resources/idlharness.js
index 622f974..e097ee7 100644
--- a/resources/idlharness.js
+++ b/resources/idlharness.js
@@ -2763,21 +2763,26 @@
expected_typeof = "object";
}
- this.test_primary_interface_of(desc, obj, exception, expected_typeof);
+ if (this.is_callback()) {
+ assert_equals(exception, null, "Unexpected exception when evaluating object");
+ assert_equals(typeof obj, expected_typeof, "wrong typeof object");
+ } else {
+ this.test_primary_interface_of(desc, obj, exception, expected_typeof);
- var current_interface = this;
- while (current_interface)
- {
- if (!(current_interface.name in this.array.members))
+ var current_interface = this;
+ while (current_interface)
{
- throw new IdlHarnessError("Interface " + current_interface.name + " not found (inherited by " + this.name + ")");
+ if (!(current_interface.name in this.array.members))
+ {
+ throw new IdlHarnessError("Interface " + current_interface.name + " not found (inherited by " + this.name + ")");
+ }
+ if (current_interface.prevent_multiple_testing && current_interface.already_tested)
+ {
+ return;
+ }
+ current_interface.test_interface_of(desc, obj, exception, expected_typeof);
+ current_interface = this.array.members[current_interface.base];
}
- if (current_interface.prevent_multiple_testing && current_interface.already_tested)
- {
- return;
- }
- current_interface.test_interface_of(desc, obj, exception, expected_typeof);
- current_interface = this.array.members[current_interface.base];
}
};