JobCallback.h 677 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (c) 2021-2022, Linus Groh <linusg@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/OwnPtr.h>
  8. #include <LibJS/Heap/Handle.h>
  9. #include <LibJS/Runtime/Completion.h>
  10. namespace JS {
  11. // 9.5.1 JobCallback Records, https://tc39.es/ecma262/#sec-jobcallback-records
  12. struct JobCallback {
  13. struct CustomData {
  14. virtual ~CustomData() = default;
  15. };
  16. Handle<FunctionObject> callback;
  17. OwnPtr<CustomData> custom_data { nullptr };
  18. };
  19. JobCallback make_job_callback(FunctionObject& callback);
  20. ThrowCompletionOr<Value> call_job_callback(VM&, JobCallback&, Value this_value, MarkedVector<Value> arguments_list);
  21. }