JavascriptBuiltInFunctions.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. #include "RuntimeLibraryPch.h"
  6. #include "EngineInterfaceObject.h"
  7. namespace Js
  8. {
  9. // Declare all the entry infos
  10. #define BUILTIN(c, n, e, i) FunctionInfo c::EntryInfo::n(FORCE_NO_WRITE_BARRIER_TAG(c::e), (Js::FunctionInfo::Attributes)(i), JavascriptBuiltInFunction:: ## c ## _ ## n);
  11. #define BUILTIN_TEMPLATE(c, n, e, i) template<> BUILTIN(c, n, e, i)
  12. #include "JavascriptBuiltInFunctionList.h"
  13. #undef BUILTIN
  14. FunctionInfo * const JavascriptBuiltInFunction::builtInFunctionInfo[MaxBuiltInEnum] =
  15. {
  16. #define BUILTIN(c, n, e, i) &c::EntryInfo::n,
  17. #include "JavascriptBuiltInFunctionList.h"
  18. #undef BUILTIN
  19. };
  20. FunctionInfo *
  21. JavascriptBuiltInFunction::GetFunctionInfo(Js::LocalFunctionId builtinId)
  22. {
  23. if (IsValidId(builtinId))
  24. {
  25. return builtInFunctionInfo[builtinId];
  26. }
  27. return nullptr;
  28. }
  29. bool
  30. JavascriptBuiltInFunction::CanChangeEntryPoint(Js::LocalFunctionId builtInId)
  31. {
  32. return IsValidId(builtInId);
  33. }
  34. bool
  35. JavascriptBuiltInFunction::IsValidId(Js::LocalFunctionId builtInId)
  36. {
  37. return builtInId < MaxBuiltInEnum;
  38. }
  39. };