2020-03-14 20:31:40 +01:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
|
|
|
|
*
|
2021-04-22 01:24:48 -07:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-03-14 20:31:40 +01:00
|
|
|
*/
|
|
|
|
|
|
2020-03-14 13:15:11 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <AK/NonnullRefPtr.h>
|
|
|
|
|
#include <AK/Weakable.h>
|
2020-03-16 14:20:30 +01:00
|
|
|
#include <LibJS/Runtime/Object.h>
|
2020-03-14 13:15:11 +01:00
|
|
|
#include <LibWeb/Forward.h>
|
|
|
|
|
|
2020-07-21 16:23:08 +02:00
|
|
|
namespace Web::Bindings {
|
2020-03-14 13:15:11 +01:00
|
|
|
|
|
|
|
|
class Wrapper
|
|
|
|
|
: public JS::Object
|
|
|
|
|
, public Weakable<Wrapper> {
|
2020-06-21 15:14:02 +02:00
|
|
|
JS_OBJECT(Wrapper, JS::Object);
|
2020-06-20 22:19:29 +02:00
|
|
|
|
2020-06-21 15:14:02 +02:00
|
|
|
public:
|
2020-03-14 13:15:11 +01:00
|
|
|
protected:
|
2020-04-18 10:27:57 +02:00
|
|
|
explicit Wrapper(Object& prototype)
|
2020-06-23 17:21:53 +02:00
|
|
|
: Object(prototype)
|
2020-04-18 10:27:57 +02:00
|
|
|
{
|
|
|
|
|
}
|
2021-09-11 20:17:04 +02:00
|
|
|
|
2021-10-02 16:35:55 +02:00
|
|
|
#ifdef JS_TRACK_ZOMBIE_CELLS
|
|
|
|
|
virtual void did_become_zombie() override
|
|
|
|
|
{
|
|
|
|
|
revoke_weak_ptrs();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
2020-03-14 13:15:11 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|