NullEnumerator.h 1.2 KB

1234567891011121314151617181920212223242526272829
  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. // Enumerator for undefined/number/double values.
  9. class NullEnumerator : public JavascriptEnumerator
  10. {
  11. private:
  12. virtual Var GetCurrentIndex() override;
  13. virtual Var GetCurrentValue() override;
  14. virtual BOOL MoveNext(PropertyAttributes* attributes = nullptr) override;
  15. virtual void Reset() override;
  16. virtual Var GetCurrentAndMoveNext(PropertyId& propertyId, PropertyAttributes* attributes = nullptr) override;
  17. virtual bool GetCurrentPropertyId(PropertyId *propertyId) override;
  18. protected:
  19. DEFINE_VTABLE_CTOR(NullEnumerator, JavascriptEnumerator);
  20. // nothing to marshal
  21. virtual void MarshalToScriptContext(Js::ScriptContext * scriptContext) override {}
  22. public:
  23. NullEnumerator(ScriptContext* scriptContext) : JavascriptEnumerator(scriptContext) {}
  24. };
  25. };