{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":37868459,"defaultBranch":"main","name":"node","ownerLogin":"jasnell","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2015-06-22T17:01:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/439929?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717366300.0","currentOid":""},"activityList":{"items":[{"before":"cd6cfb0a6746150ac7badae2214997fce928e3c0","after":"2c9a9ed3bd166162f6dfbe82e149c54a2a06c23d","ref":"refs/heads/quic-part-14","pushedAt":"2024-06-02T22:15:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: implement more of the internal js API","shortMessageHtmlLink":"quic: implement more of the internal js API"}},{"before":"d4ea9c31fbef5cbc76a96d0a4ca5eaaac52368ad","after":"f245d2ca27b567f7097e29c66e8522daa6c06090","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T22:14:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":null,"after":"cd6cfb0a6746150ac7badae2214997fce928e3c0","ref":"refs/heads/quic-part-14","pushedAt":"2024-06-02T22:11:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: implement more of the internal js API","shortMessageHtmlLink":"quic: implement more of the internal js API"}},{"before":"4f56d5c722853002ef3b0e8704e1484c45c0f76d","after":"d4ea9c31fbef5cbc76a96d0a4ca5eaaac52368ad","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T19:25:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"f2067e76697686d43b1335ec2e4b6effbf5e37b6","after":"4f56d5c722853002ef3b0e8704e1484c45c0f76d","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T19:17:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"ce3d362e08643061fe392f0d58a2f9d3b23dabbe","after":"f2067e76697686d43b1335ec2e4b6effbf5e37b6","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T18:47:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"fa3369d3b44a5f8aa69b471c5b86749822a8dad2","after":"ce3d362e08643061fe392f0d58a2f9d3b23dabbe","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T18:36:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"09eb874fcac8a8e351bfe9ee75456bd258387427","after":"fa3369d3b44a5f8aa69b471c5b86749822a8dad2","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T18:18:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"9e50fba201af2c72581d741458263a234c6893a5","after":"09eb874fcac8a8e351bfe9ee75456bd258387427","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T17:08:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"534255757a591f3f37a2fca3671c2984bf6f2b54","after":"9e50fba201af2c72581d741458263a234c6893a5","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T15:44:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"3ab0499d434078676261512a67897f4c2f433e43","after":"954a6b395dc7f085e90d57e8526798c3a50b4b68","ref":"refs/heads/main","pushedAt":"2024-06-02T15:27:44.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"deps: patch V8 to 12.4.254.20\n\nRefs: https://github.com/v8/v8/compare/12.4.254.19...12.4.254.20\nPR-URL: https://github.com/nodejs/node/pull/53159\nReviewed-By: Michaël Zasso \nReviewed-By: Marco Ippolito \nReviewed-By: Mohammed Keyvanzadeh \nReviewed-By: Ulises Gascón \nReviewed-By: Luigi Pinca ","shortMessageHtmlLink":"deps: patch V8 to 12.4.254.20"}},{"before":"f716980c1f370e1412be113ec2b66890d342b9aa","after":"534255757a591f3f37a2fca3671c2984bf6f2b54","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T14:53:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"9f2f600405246bcc96198844cef57bdd4c01dacf","after":"f716980c1f370e1412be113ec2b66890d342b9aa","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T04:06:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"1babee6192910c250f863c25f6563583cd81e108","after":"9f2f600405246bcc96198844cef57bdd4c01dacf","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T04:03:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"175cbc81f8d3fe804dc212bf11e8c9287eb848d4","after":"1babee6192910c250f863c25f6563583cd81e108","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T04:02:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":null,"after":"175cbc81f8d3fe804dc212bf11e8c9287eb848d4","ref":"refs/heads/quic-part-13","pushedAt":"2024-06-02T03:33:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: start adding in the internal quic js api\n\nWhile the external API for QUIC is expected to be\nthe WebTransport API primarily, this provides the\ninternal API for QUIC that aligns with the native\nC++ QUIC components.","shortMessageHtmlLink":"quic: start adding in the internal quic js api"}},{"before":"7380252ae50e1d71544ce52d6246f2cde4dfabf7","after":"3ab0499d434078676261512a67897f4c2f433e43","ref":"refs/heads/main","pushedAt":"2024-06-01T14:48:20.000Z","pushType":"push","commitsCount":79,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src,permission: --allow-wasi & prevent WASI exec\n\nPR-URL: https://github.com/nodejs/node/pull/53124\nReviewed-By: Marco Ippolito \nReviewed-By: Antoine du Hamel ","shortMessageHtmlLink":"src,permission: --allow-wasi & prevent WASI exec"}},{"before":"65c8380a5ab1a0a2bf5fd548c065f4c1e0f9670f","after":"7380252ae50e1d71544ce52d6246f2cde4dfabf7","ref":"refs/heads/main","pushedAt":"2024-05-18T17:48:33.000Z","pushType":"push","commitsCount":163,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"deps: patch V8 to 12.4.254.17\n\nRefs: https://github.com/v8/v8/compare/12.4.254.14...12.4.254.17\nPR-URL: https://github.com/nodejs/node/pull/52980\nReviewed-By: Michaël Zasso \nReviewed-By: Marco Ippolito \nReviewed-By: Yagiz Nizipli \nReviewed-By: Luigi Pinca \nReviewed-By: Mohammed Keyvanzadeh ","shortMessageHtmlLink":"deps: patch V8 to 12.4.254.17"}},{"before":"40ef9d541ed79470977f90eb445c291b95ab75a0","after":"65c8380a5ab1a0a2bf5fd548c065f4c1e0f9670f","ref":"refs/heads/main","pushedAt":"2024-05-04T16:53:35.000Z","pushType":"push","commitsCount":41,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"http: correctly translate HTTP method\n\nPR-URL: https://github.com/nodejs/node/pull/52701\nReviewed-By: Matteo Collina \nReviewed-By: Robert Nagy \nReviewed-By: Filip Skokan \nReviewed-By: Marco Ippolito \nReviewed-By: Benjamin Gruenbaum \nReviewed-By: James M Snell ","shortMessageHtmlLink":"http: correctly translate HTTP method"}},{"before":"add097052a8610637e70c2e869d5b941c4d4ede5","after":"804476749c7d545e6f1fbc0854ea0fdbef594a46","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T02:36:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"278ba2967b56b286f9be2ae5899585ea12c0ccb8","after":"add097052a8610637e70c2e869d5b941c4d4ede5","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T02:36:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"bf2eec3dbfb9d522911707434e160054f602b9f1","after":"278ba2967b56b286f9be2ae5899585ea12c0ccb8","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T02:28:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"1fccc12cf2c24eb030804330bd7d41936c6fb4ad","after":"bf2eec3dbfb9d522911707434e160054f602b9f1","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T01:57:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"f7b6758471f33df6cf853ac1e3023062d6429e6e","after":"1fccc12cf2c24eb030804330bd7d41936c6fb4ad","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T00:46:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"0464ee019833eb89c0283101cd6044bb4db108f1","after":"f7b6758471f33df6cf853ac1e3023062d6429e6e","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-29T00:46:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":null,"after":"0464ee019833eb89c0283101cd6044bb4db108f1","ref":"refs/heads/asynccontext-refactor","pushedAt":"2024-04-28T23:56:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: add new underlying async context tracking\n\nImplements the core underlying bits of a refactored\nAsyncLocalStorage implementation based on the same\nmechanism that will be used for the standard AsyncContext\nAPI. The implementation is based on the new continuation\npreserved embedder data API in v8 and is designed to be\nsignificantly faster and more efficient that the current\npromise-hook based implementation.\n\nThis intentionally only adds the basic pieces, with the\nintent of spreading the refactored implementation across\nmultiple PRs just to make things easier to review.\n\nThe basic idea is to implement AsyncLocalStorage like:\n\n```js\nconst { internalBinding } = require('internal/test/binding');\nconst {\n get: get_,\n run: run_,\n runWithin: runWithin_,\n snapshot: snapshot_,\n enterWith: enterWith_,\n} = internalBinding('async_context')\n\nclass AsyncLocalStorage {\n #key = Symbol();\n\n run(value, fn, ...args) {\n return run_(this.#key, value, () => fn(...args));\n }\n\n exit(fn, ...args) {\n return run_(this.#key, undefined, () => fn(...args));\n }\n\n getStore() {\n return get_(this.#key);\n }\n\n disable() {\n enterWith_(this.#key, undefined);\n }\n\n enterWith(value) {\n enterWith_(this.#key, value);\n }\n\n static snapshot() {\n const frame = snapshot_();\n return function(fn) {\n return runWithin_(frame, fn);\n };\n }\n\n static bind(fn) {\n return AsyncLocalStorage.snapshot().bind(undefined, fn);\n }\n}\n```","shortMessageHtmlLink":"src: add new underlying async context tracking"}},{"before":"44f81a1b7dbed051433959cc2e816faeb674457d","after":"40ef9d541ed79470977f90eb445c291b95ab75a0","ref":"refs/heads/main","pushedAt":"2024-04-27T18:55:12.000Z","pushType":"push","commitsCount":46,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"deps: V8: cherry-pick 500de8bd371b\n\nOriginal commit message:\n\n [gcc] Fix gcc / bazel build\n\n Add includes to fix gcc/blaze builds. Also ignore a dangling\n pointer warning introduced in newer gcc, since it has false positives\n on some uses of scope classes.\n\n Change-Id: Ib86a2437ffc34b5497a5b8619013d6d5b4ea30fe\n Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5380192\n Auto-Submit: Leszek Swirski \n Reviewed-by: Adam Klein \n Reviewed-by: Michael Achenbach \n Commit-Queue: Michael Achenbach \n Cr-Commit-Position: refs/heads/main@{#92977}\n\nRefs: https://github.com/v8/v8/commit/500de8bd371b224bb5274e88d6c7b165a146d378\nPR-URL: https://github.com/nodejs/node/pull/52676\nFixes: https://github.com/nodejs/node/issues/52675\nReviewed-By: Yagiz Nizipli \nReviewed-By: Jiawen Geng \nReviewed-By: Michaël Zasso \nReviewed-By: Luigi Pinca \nReviewed-By: Mohammed Keyvanzadeh \nReviewed-By: Moshe Atlow \nReviewed-By: Gerhard Stöbich ","shortMessageHtmlLink":"deps: V8: cherry-pick 500de8bd371b"}},{"before":null,"after":"a33220fadd187f115d448ed49f84e30bee43089f","ref":"refs/heads/quic-part-12","pushedAt":"2024-04-21T20:45:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"quic: add scaffolding for Web Transport API\n\nWill be the JS API for QUIC","shortMessageHtmlLink":"quic: add scaffolding for Web Transport API"}},{"before":"93da936f14321b681d6e6ea66a9060f057a44e4d","after":"44f81a1b7dbed051433959cc2e816faeb674457d","ref":"refs/heads/main","pushedAt":"2024-04-21T18:16:19.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"doc: add info on contributor spotlight program\n\nRefs: https://github.com/nodejs/TSC/issues/1474\n\nSigned-off-by: Michael Dawson \nPR-URL: https://github.com/nodejs/node/pull/52598\nReviewed-By: Yagiz Nizipli \nReviewed-By: Paolo Insogna \nReviewed-By: Marco Ippolito \nReviewed-By: Ruy Adorno \nReviewed-By: Moshe Atlow \nReviewed-By: Rafael Gonzaga \nReviewed-By: James M Snell ","shortMessageHtmlLink":"doc: add info on contributor spotlight program"}},{"before":"76659e8a8bdee4eb6264e6c2b83f8b455c43599e","after":"e03af7bf5b39ec8fbd2c062e7429a52a75eea3a1","ref":"refs/heads/quic-part-11","pushedAt":"2024-04-20T19:42:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jasnell","name":"James M Snell","path":"/jasnell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/439929?s=80&v=4"},"commit":{"message":"src: additional fixups for tlscontext","shortMessageHtmlLink":"src: additional fixups for tlscontext"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWmBZ6gA","startCursor":null,"endCursor":null}},"title":"Activity · jasnell/node"}