summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Runtime/AbstractOperations.h
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2021-06-19 21:45:00 +0100
committerAndreas Kling <kling@serenityos.org>2021-06-20 12:12:39 +0200
commit55db9539a521e8355ef842d86413943531a885b4 (patch)
tree198d7faf07a9127917934cc2b72e441169e6be36 /Userland/Libraries/LibJS/Runtime/AbstractOperations.h
parentc03a3dc5b72cc610dcdc629cabe11e31a7016805 (diff)
downloadserenity-55db9539a521e8355ef842d86413943531a885b4.zip
LibJS: Introduce AbstractOperations.{cpp,h} and move various AOs there
Value.{cpp,h} has become a dumping ground, let's change that. Things that are directly related to Values (e.g. bitwise/binary ops, equality related functions) can remain, but everything else that's not a Value or Object method and globally required (not just a static function somewhere) is being moved. Also convert to east-const while we're here. I haven't touched IteratorOperations.{cpp,h}, it seems fine to still have those separately.
Diffstat (limited to 'Userland/Libraries/LibJS/Runtime/AbstractOperations.h')
-rw-r--r--Userland/Libraries/LibJS/Runtime/AbstractOperations.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/AbstractOperations.h
new file mode 100644
index 0000000000..df9ecf40df
--- /dev/null
+++ b/Userland/Libraries/LibJS/Runtime/AbstractOperations.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2020-2021, Linus Groh <linusg@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <AK/Forward.h>
+#include <LibJS/Forward.h>
+#include <LibJS/Runtime/Value.h>
+
+namespace JS {
+
+Value require_object_coercible(GlobalObject&, Value);
+Function* get_method(GlobalObject& global_object, Value, PropertyName const&);
+size_t length_of_array_like(GlobalObject&, Object const&);
+MarkedValueList create_list_from_array_like(GlobalObject&, Value, AK::Function<Result<void, ErrorType>(Value)> = {});
+Function* species_constructor(GlobalObject&, Object const&, Function& default_constructor);
+
+}