JavascriptAsyncGeneratorFunction.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 JavascriptAsyncGeneratorFunction : public JavascriptGeneratorFunction
  9. {
  10. private:
  11. static FunctionInfo functionInfo;
  12. DEFINE_VTABLE_CTOR(JavascriptAsyncGeneratorFunction, JavascriptGeneratorFunction);
  13. DEFINE_MARSHAL_OBJECT_TO_SCRIPT_CONTEXT(JavascriptAsyncGeneratorFunction);
  14. protected:
  15. JavascriptAsyncGeneratorFunction(DynamicType* type);
  16. public:
  17. JavascriptAsyncGeneratorFunction(
  18. DynamicType* type,
  19. GeneratorVirtualScriptFunction* scriptFunction);
  20. static JavascriptAsyncGeneratorFunction* New(
  21. ScriptContext* scriptContext,
  22. GeneratorVirtualScriptFunction* scriptFunction);
  23. static Var EntryAsyncGeneratorFunctionImplementation(
  24. RecyclableObject* function,
  25. CallInfo callInfo, ...);
  26. inline static bool Test(JavascriptFunction *obj)
  27. {
  28. return
  29. VirtualTableInfo<JavascriptAsyncGeneratorFunction>::HasVirtualTable(obj) ||
  30. VirtualTableInfo<CrossSiteObject<JavascriptAsyncGeneratorFunction>>::HasVirtualTable(obj);
  31. }
  32. #if ENABLE_TTD
  33. /*
  34. virtual TTD::NSSnapObjects::SnapObjectType GetSnapTag_TTD() const override;
  35. virtual void ExtractSnapObjectDataInto(TTD::NSSnapObjects::SnapObject* objData, TTD::SlabAllocator& alloc) override;
  36. */
  37. #endif
  38. public:
  39. virtual VTableValue DummyVirtualFunctionToHinderLinkerICF()
  40. {
  41. return VTableValue::VtableJavascriptAsyncGeneratorFunction;
  42. }
  43. };
  44. template<>
  45. bool VarIsImpl<JavascriptAsyncGeneratorFunction>(RecyclableObject* obj);
  46. }