DatePrototype.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /*
  2. * Copyright (c) 2020-2022, Linus Groh <linusg@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibJS/Runtime/Date.h>
  8. #include <LibJS/Runtime/PrototypeObject.h>
  9. namespace JS {
  10. class DatePrototype final : public PrototypeObject<DatePrototype, Date> {
  11. JS_PROTOTYPE_OBJECT(DatePrototype, Date, Date);
  12. GC_DECLARE_ALLOCATOR(DatePrototype);
  13. public:
  14. virtual void initialize(Realm&) override;
  15. virtual ~DatePrototype() override = default;
  16. private:
  17. explicit DatePrototype(Realm&);
  18. JS_DECLARE_NATIVE_FUNCTION(get_date);
  19. JS_DECLARE_NATIVE_FUNCTION(get_day);
  20. JS_DECLARE_NATIVE_FUNCTION(get_full_year);
  21. JS_DECLARE_NATIVE_FUNCTION(get_hours);
  22. JS_DECLARE_NATIVE_FUNCTION(get_milliseconds);
  23. JS_DECLARE_NATIVE_FUNCTION(get_minutes);
  24. JS_DECLARE_NATIVE_FUNCTION(get_month);
  25. JS_DECLARE_NATIVE_FUNCTION(get_seconds);
  26. JS_DECLARE_NATIVE_FUNCTION(get_time);
  27. JS_DECLARE_NATIVE_FUNCTION(get_timezone_offset);
  28. JS_DECLARE_NATIVE_FUNCTION(get_utc_date);
  29. JS_DECLARE_NATIVE_FUNCTION(get_utc_day);
  30. JS_DECLARE_NATIVE_FUNCTION(get_utc_full_year);
  31. JS_DECLARE_NATIVE_FUNCTION(get_utc_hours);
  32. JS_DECLARE_NATIVE_FUNCTION(get_utc_milliseconds);
  33. JS_DECLARE_NATIVE_FUNCTION(get_utc_minutes);
  34. JS_DECLARE_NATIVE_FUNCTION(get_utc_month);
  35. JS_DECLARE_NATIVE_FUNCTION(get_utc_seconds);
  36. JS_DECLARE_NATIVE_FUNCTION(set_date);
  37. JS_DECLARE_NATIVE_FUNCTION(set_full_year);
  38. JS_DECLARE_NATIVE_FUNCTION(set_hours);
  39. JS_DECLARE_NATIVE_FUNCTION(set_milliseconds);
  40. JS_DECLARE_NATIVE_FUNCTION(set_minutes);
  41. JS_DECLARE_NATIVE_FUNCTION(set_month);
  42. JS_DECLARE_NATIVE_FUNCTION(set_seconds);
  43. JS_DECLARE_NATIVE_FUNCTION(set_time);
  44. JS_DECLARE_NATIVE_FUNCTION(set_utc_date);
  45. JS_DECLARE_NATIVE_FUNCTION(set_utc_full_year);
  46. JS_DECLARE_NATIVE_FUNCTION(set_utc_hours);
  47. JS_DECLARE_NATIVE_FUNCTION(set_utc_milliseconds);
  48. JS_DECLARE_NATIVE_FUNCTION(set_utc_minutes);
  49. JS_DECLARE_NATIVE_FUNCTION(set_utc_month);
  50. JS_DECLARE_NATIVE_FUNCTION(set_utc_seconds);
  51. JS_DECLARE_NATIVE_FUNCTION(to_date_string);
  52. JS_DECLARE_NATIVE_FUNCTION(to_iso_string);
  53. JS_DECLARE_NATIVE_FUNCTION(to_json);
  54. JS_DECLARE_NATIVE_FUNCTION(to_locale_date_string);
  55. JS_DECLARE_NATIVE_FUNCTION(to_locale_string);
  56. JS_DECLARE_NATIVE_FUNCTION(to_locale_time_string);
  57. JS_DECLARE_NATIVE_FUNCTION(to_string);
  58. JS_DECLARE_NATIVE_FUNCTION(to_temporal_instant);
  59. JS_DECLARE_NATIVE_FUNCTION(to_time_string);
  60. JS_DECLARE_NATIVE_FUNCTION(to_utc_string);
  61. JS_DECLARE_NATIVE_FUNCTION(get_year);
  62. JS_DECLARE_NATIVE_FUNCTION(set_year);
  63. JS_DECLARE_NATIVE_FUNCTION(to_gmt_string);
  64. JS_DECLARE_NATIVE_FUNCTION(symbol_to_primitive);
  65. };
  66. ThrowCompletionOr<double> this_time_value(VM&, Value value);
  67. ByteString time_string(double time);
  68. ByteString date_string(double time);
  69. ByteString time_zone_string(double time);
  70. ByteString to_date_string(double time);
  71. }