1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:37:45 +00:00

LibJS: Make AggregateError inherit from Error

This is our way of implementing the [[ErrorData]] internal slot, which
is being used in Object.prototype.toString().
This commit is contained in:
Linus Groh 2021-06-23 13:59:17 +01:00
parent 0e8cbfb7b5
commit c503a28e19
3 changed files with 7 additions and 4 deletions

View file

@ -5,7 +5,7 @@
*/ */
#include <LibJS/Runtime/AggregateError.h> #include <LibJS/Runtime/AggregateError.h>
#include <LibJS/Runtime/Array.h> #include <LibJS/Runtime/Error.h>
#include <LibJS/Runtime/GlobalObject.h> #include <LibJS/Runtime/GlobalObject.h>
namespace JS { namespace JS {
@ -16,7 +16,7 @@ AggregateError* AggregateError::create(GlobalObject& global_object)
} }
AggregateError::AggregateError(Object& prototype) AggregateError::AggregateError(Object& prototype)
: Object(prototype) : Error(prototype)
{ {
} }

View file

@ -6,12 +6,13 @@
#pragma once #pragma once
#include <LibJS/Runtime/Error.h>
#include <LibJS/Runtime/Object.h> #include <LibJS/Runtime/Object.h>
namespace JS { namespace JS {
class AggregateError : public Object { class AggregateError : public Error {
JS_OBJECT(AggregateError, Object); JS_OBJECT(AggregateError, Error);
public: public:
static AggregateError* create(GlobalObject&); static AggregateError* create(GlobalObject&);

View file

@ -10,6 +10,8 @@ test("result for various object types", () => {
expect(oToString([])).toBe("[object Array]"); expect(oToString([])).toBe("[object Array]");
expect(oToString(function () {})).toBe("[object Function]"); expect(oToString(function () {})).toBe("[object Function]");
expect(oToString(new Error())).toBe("[object Error]"); expect(oToString(new Error())).toBe("[object Error]");
expect(oToString(new TypeError())).toBe("[object Error]");
expect(oToString(new AggregateError([]))).toBe("[object Error]");
expect(oToString(new Boolean())).toBe("[object Boolean]"); expect(oToString(new Boolean())).toBe("[object Boolean]");
expect(oToString(new Number())).toBe("[object Number]"); expect(oToString(new Number())).toBe("[object Number]");
expect(oToString(new Date())).toBe("[object Date]"); expect(oToString(new Date())).toBe("[object Date]");