JavascriptNumberObject.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. static JavascriptNumberObject* UnsafeFromVar(Var aValue);
  21. double GetValue() const;
  22. void SetValue(Var value);
  23. Var Unwrap() const;
  24. virtual BOOL GetDiagValueString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  25. virtual BOOL GetDiagTypeString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  26. #if ENABLE_TTD
  27. public:
  28. void SetValue_TTD(Js::Var val);
  29. virtual void MarkVisitKindSpecificPtrs(TTD::SnapshotExtractor* extractor) override;
  30. virtual TTD::NSSnapObjects::SnapObjectType GetSnapTag_TTD() const override;
  31. virtual void ExtractSnapObjectDataInto(TTD::NSSnapObjects::SnapObject* objData, TTD::SlabAllocator& alloc) override;
  32. #endif
  33. };
  34. }