Open Bug 1048236 Opened 10 years ago Updated 2 years ago

MSG_THIS_DOES_NOT_IMPLEMENT_INTERFACE takes one argument, but is called with two

Categories

(Core :: DOM: Core & HTML, defect, P5)

defect

Tracking

()

People

(Reporter: Ms2ger, Unassigned)

References

(Blocks 1 open bug)

Details

self.unwrapFailureCode = 'return ThrowErrorMessage(cx, MSG_THIS_DOES_NOT_IMPLEMENT_INTERFACE, "Value", "%s");\n' % descriptor.interface.identifier.name

MSG_DEF(MSG_THIS_DOES_NOT_IMPLEMENT_INTERFACE, 1, "\"this\" object does not implement interface {0}.")

Haven't managed to actually hit this code.
> Haven't managed to actually hit this code.

That's because it's unreachable, imo.

If you look at CGAbstractBindingMethod.__init__ callsites, they all pass an unwrapFailureCode exept the ones in CGLegacyCallHook, CGNewResolveHook, CGEnumerateHook, CGResolveOwnPropertyViaNewresolve, and CGEnumerateOwnPropetiesViaGetOwnPropertyNames.  But these hooks can't happen on the wrong sort of object, since they're directly based on JSClass/DOMJSClass hooks.

Unfortunately, CastableObjectUnwrapper relies on having a self.unwrapFailureCode that has precisely one %s substitution in it.  So we can't just set unwrapFailureCode to None when it's not passed.  I'm not sure whether it makes sense to just set it to some string containing MOZ_NOTREACHED or whatnot.
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046

Move all DOM bugs that haven’t been updated in more than 3 years and has no one currently assigned to P5.

If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.