JavascriptAsyncFromSyncIterator.h 1.9 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 JavascriptAsyncFromSyncIterator : public DynamicObject
  9. {
  10. public:
  11. JavascriptAsyncFromSyncIterator(DynamicType* type, RecyclableObject* syncIterator) :
  12. DynamicObject(type), syncIterator(syncIterator) { }
  13. RecyclableObject* GetSyncIterator() { return this->syncIterator; }
  14. RecyclableObject* JavascriptAsyncFromSyncIterator::EnsureSyncNextFunction(ScriptContext* scriptContext);
  15. static Var AsyncFromSyncIteratorContinuation(RecyclableObject* result, ScriptContext* scriptContext);
  16. static Var EntryAsyncFromSyncIteratorNext(RecyclableObject* function, CallInfo callInfo, ...);
  17. static Var EntryAsyncFromSyncIteratorThrow(RecyclableObject* function, CallInfo callInfo, ...);
  18. static Var EntryAsyncFromSyncIteratorReturn(RecyclableObject* function, CallInfo callInfo, ...);
  19. static Var EntryAsyncFromSyncIteratorValueUnwrapFalseFunction(RecyclableObject* function, CallInfo callInfo, ...);
  20. static Var EntryAsyncFromSyncIteratorValueUnwrapTrueFunction(RecyclableObject* function, CallInfo callInfo, ...);
  21. class EntryInfo
  22. {
  23. public:
  24. static FunctionInfo Next;
  25. static FunctionInfo Return;
  26. static FunctionInfo Throw;
  27. };
  28. private:
  29. Field(RecyclableObject*) syncIterator;
  30. Field(RecyclableObject*) syncNextFunction;
  31. protected:
  32. DEFINE_VTABLE_CTOR(JavascriptAsyncFromSyncIterator, DynamicObject);
  33. };
  34. template <> bool VarIsImpl<JavascriptAsyncFromSyncIterator>(RecyclableObject* obj);
  35. } // namespace Js