ArrayBuffer.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2020, Linus Groh <linusg@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibJS/Runtime/ArrayBuffer.h>
  7. #include <LibJS/Runtime/GlobalObject.h>
  8. namespace JS {
  9. ArrayBuffer* ArrayBuffer::create(GlobalObject& global_object, size_t byte_size)
  10. {
  11. return global_object.heap().allocate<ArrayBuffer>(global_object, byte_size, *global_object.array_buffer_prototype());
  12. }
  13. ArrayBuffer* ArrayBuffer::create(GlobalObject& global_object, ByteBuffer& buffer)
  14. {
  15. return global_object.heap().allocate<ArrayBuffer>(global_object, buffer, *global_object.array_buffer_prototype());
  16. }
  17. ArrayBuffer* ArrayBuffer::create(GlobalObject& global_object, ByteBuffer* buffer)
  18. {
  19. return global_object.heap().allocate<ArrayBuffer>(global_object, buffer, *global_object.array_buffer_prototype());
  20. }
  21. ArrayBuffer::ArrayBuffer(size_t byte_size, Object& prototype)
  22. : Object(prototype)
  23. , m_buffer(ByteBuffer::create_zeroed(byte_size))
  24. {
  25. }
  26. ArrayBuffer::ArrayBuffer(ByteBuffer& buffer, Object& prototype)
  27. : Object(prototype)
  28. , m_buffer(buffer)
  29. {
  30. }
  31. ArrayBuffer::ArrayBuffer(ByteBuffer* buffer, Object& prototype)
  32. : Object(prototype)
  33. , m_buffer(buffer)
  34. {
  35. }
  36. ArrayBuffer::~ArrayBuffer()
  37. {
  38. }
  39. }