chore_allow_customizing_microtask_policy_per_context.patch 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: deepak1556 <[email protected]>
  3. Date: Wed, 11 Jan 2023 19:21:06 +0900
  4. Subject: chore: allow customizing microtask policy per context
  5. With https://github.com/electron/electron/issues/36813, microtask queue associated with a context
  6. will be used if available, instead of the default associated with an isolate. We need the
  7. capability to switch the microtask polciy of these per context microtask queue to support
  8. Node.js integration in the renderer.
  9. diff --git a/include/v8-microtask-queue.h b/include/v8-microtask-queue.h
  10. index 135dfb06a3bdd11e5db21c1974a38a086a7ac9cb..f2708774bfac59703e8981d8816a97a8e61b177a 100644
  11. --- a/include/v8-microtask-queue.h
  12. +++ b/include/v8-microtask-queue.h
  13. @@ -97,6 +97,9 @@ class V8_EXPORT MicrotaskQueue {
  14. */
  15. virtual int GetMicrotasksScopeDepth() const = 0;
  16. + virtual void set_microtasks_policy(v8::MicrotasksPolicy microtasks_policy) = 0;
  17. + virtual v8::MicrotasksPolicy microtasks_policy() const = 0;
  18. +
  19. MicrotaskQueue(const MicrotaskQueue&) = delete;
  20. MicrotaskQueue& operator=(const MicrotaskQueue&) = delete;
  21. diff --git a/src/execution/microtask-queue.h b/src/execution/microtask-queue.h
  22. index 1965560945102b2a51071c405e88524e9f1dc237..38e095625b04e6ac3f77b70e940661a1a647d98a 100644
  23. --- a/src/execution/microtask-queue.h
  24. +++ b/src/execution/microtask-queue.h
  25. @@ -93,10 +93,10 @@ class V8_EXPORT_PRIVATE MicrotaskQueue final : public v8::MicrotaskQueue {
  26. }
  27. #endif
  28. - void set_microtasks_policy(v8::MicrotasksPolicy microtasks_policy) {
  29. + void set_microtasks_policy(v8::MicrotasksPolicy microtasks_policy) override {
  30. microtasks_policy_ = microtasks_policy;
  31. }
  32. - v8::MicrotasksPolicy microtasks_policy() const { return microtasks_policy_; }
  33. + v8::MicrotasksPolicy microtasks_policy() const override { return microtasks_policy_; }
  34. intptr_t capacity() const { return capacity_; }
  35. intptr_t size() const { return size_; }