Hello all,
We just made some changes to how exception strings from ErrorResult get
formatted [1]. The changes apply to both the Throw* DOMException
methods and ThrowTypeError/ThrowRangeError.
In the new setup, exception messages have "%s: " prepended to them,
where %s is replaced with one of:
* "InterfaceName.methodName", when the exception is from a method cal.
* "InterfaceName.attrName getter", when the exception is from a getter
* "InterfaceName.attrName setter", when the exception is from a setter
* "InterfaceName constructor", when the exception is from a constructor.
The idea is to give web developers a bit more context about what callee
failed.
I have tried to go through existing message strings and remove
duplication of that information where it existed.
The changes only affect exceptions thrown via the ErrorResult that
bindings pass to implementation methods. In particular, Promise
rejections via Promise methods (as opposed to throwing on the passed-in
ErrorResult) do not benefit from these changes; more work will need to
happen there.
The changes also do not affect exceptions thrown via
ErrorResult::Throw(nsresult). As a reminder, this is deprecated and
people should switch to the methods that provide useful error messages.
Please let me know if there are concerns around this change, suggestions
for further improvements, etc!
-Boris
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1613013
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform