mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 23:07:34 +00:00
![]() The previous handling of the name and message properties specifically was breaking websites that created their own error types and relied on the error prototype working correctly - not assuming an JS::Error this object, that is. The way it works now, and it is supposed to work, is: - Error.prototype.name and Error.prototype.message just have initial string values and are no longer getters/setters - When constructing an error with a message, we create a regular property on the newly created object, so a lookup of the message property will either get it from the object directly or go though the prototype chain - Internal m_name/m_message properties are no longer needed and removed This makes printing errors slightly more complicated, as we can no longer rely on the (safe) internal properties, and cannot trust a property lookup either - get_without_side_effects() is used to solve this, it's not perfect but something we can revisit later. I did some refactoring along the way, there was some really old stuff in there - accessing vm.call_frame().arguments[0] is not something we (have to) do anymore :^) Fixes #6245. |
||
---|---|---|
.. | ||
CSSStyleDeclarationWrapperCustom.cpp | ||
EventListenerWrapper.cpp | ||
EventListenerWrapper.h | ||
EventTargetWrapperFactory.cpp | ||
EventTargetWrapperFactory.h | ||
EventWrapperFactory.cpp | ||
EventWrapperFactory.h | ||
ExceptionOrUtils.h | ||
ImageConstructor.cpp | ||
ImageConstructor.h | ||
LocationObject.cpp | ||
LocationObject.h | ||
MainThreadVM.cpp | ||
MainThreadVM.h | ||
NavigatorObject.cpp | ||
NavigatorObject.h | ||
NodeWrapperFactory.cpp | ||
NodeWrapperFactory.h | ||
ScriptExecutionContext.cpp | ||
ScriptExecutionContext.h | ||
WindowObject.cpp | ||
WindowObject.h | ||
WindowObjectHelper.h | ||
Wrappable.cpp | ||
Wrappable.h | ||
Wrapper.h |