JavascriptNumberObject.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. double GetValue() const;
  19. void SetValue(Var value);
  20. Var Unwrap() const;
  21. virtual BOOL GetDiagValueString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  22. virtual BOOL GetDiagTypeString(StringBuilder<ArenaAllocator>* stringBuilder, ScriptContext* requestContext) override;
  23. #if ENABLE_TTD
  24. public:
  25. void SetValue_TTD(Js::Var val);
  26. virtual void MarkVisitKindSpecificPtrs(TTD::SnapshotExtractor* extractor) override;
  27. virtual TTD::NSSnapObjects::SnapObjectType GetSnapTag_TTD() const override;
  28. virtual void ExtractSnapObjectDataInto(TTD::NSSnapObjects::SnapObject* objData, TTD::SlabAllocator& alloc) override;
  29. #endif
  30. };
  31. template <> inline bool VarIsImpl<JavascriptNumberObject>(RecyclableObject* obj)
  32. {
  33. return JavascriptOperators::GetTypeId(obj) == TypeIds_NumberObject;
  34. }
  35. }