mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 16:15:10 +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. |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Generate_CSS_PropertyID_cpp.cpp | ||
Generate_CSS_PropertyID_h.cpp | ||
Generate_CSS_ValueID_cpp.cpp | ||
Generate_CSS_ValueID_h.cpp | ||
WrapperGenerator.cpp |