JavascriptNumberObject.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. namespace Js
  7. {
  8. class JavascriptNumberObject : public DynamicObject
  9. {
  10. private:
  11. Field(Var) value;
  12. DEFINE_VTABLE_CTOR(JavascriptNumberObject, DynamicObject);
  13. DEFINE_MARSHAL_OBJECT_TO_SCRIPT_CONTEXT(JavascriptNumberObject);
  14. protected:
  15. JavascriptNumberObject(DynamicType * type);
  16. public:
  17. JavascriptNumberObject(Var value, DynamicType * type);
  18. static bool Is(Var aValue);
  19. static JavascriptNumberObject* FromVar(Var aValue);
  20. double GetValue() const;
  21. void SetValue(Var value);
  22. Var Unwrap() const;
  23. virtual BOOL GetDiagValueString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  24. virtual BOOL GetDiagTypeString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  25. #if ENABLE_TTD
  26. public:
  27. void SetValue_TTD(Js::Var val);
  28. virtual void MarkVisitKindSpecificPtrs(TTD::SnapshotExtractor* extractor) override;
  29. virtual TTD::NSSnapObjects::SnapObjectType GetSnapTag_TTD() const override;
  30. virtual void ExtractSnapObjectDataInto(TTD::NSSnapObjects::SnapObject* objData, TTD::SlabAllocator& alloc) override;
  31. #endif
  32. };
  33. }