-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v16.9.0 release proposal #40011
Merged
Merged
v16.9.0 release proposal #40011
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Original commit message: [testrunner] delete ancient junit compatible format support Testrunner has ancient support for JUnit compatible XML output. This CL removes this old feature. R=mstarzinger@chromium.org,jgruber@chromium.org,jkummerow@chromium.org CC=machenbach@chromium.org Bug: v8:8728 Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0 Reviewed-on: https://chromium-review.googlesource.com/c/1430065 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#59045} Refs: v8/v8@bd019bd PR-URL: #32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Fixes a compilation issue on some platforms PR-URL: #32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This should be semver-patch since actual invocation is version conditional. PR-URL: #32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
There is a bug in the most recent version of VS2015 that affects v8.h and therefore prevents compilation of addons. Refs: https://stackoverflow.com/q/38378693 PR-URL: #32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
PR-URL: #35415 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
PR-URL: #37587 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
PR-URL: #38990 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Original commit message: [promise] Avoid stack overflow with context promise hooks in C++ This was handled in JS but not in C++. Bug: chromium:236703, v8:11025 Change-Id: Ic9adc4ceb4d2af2614427fec459c3e950654572f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3074460 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#76125} Refs: v8/v8@81814ed PR-URL: #39719 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Original commit message: [date] Fix Date#getMinutes() test failures After building V8 using Clang (./out/x64.release/v8_build_config.json says that "is_clang" is true), I could reproduce the referenced bug report locally. Replacing the getMinutes() calls with getUTCMinutes() calls fixed the test failure. Signed-off-by: Darshan Sen <raisinten@gmail.com> Bug: v8:11200 Change-Id: Ia36be481f2c8728380d550ead856ef8e51b1069c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3093362 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#76367} Refs: v8/v8@00bb1a7 Signed-off-by: Darshan Sen <darshan.sen@postman.com> PR-URL: #39829 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Revert "[api] Avoid handles for const API functions" This reverts commit aee471b2ff5b1a9e622426454885b748d226535b. Revert "[api] Remove deprecated [Shared]ArrayBuffer API" This reverts commit 578f6be77fc5d8af975005c2baf918e7225abb62. Revert "[Jobs]: Cleanup in v8 platform." This reverts commit baf2b088dd9f585aa597459f30d71431171666e2. Revert "Skip global registration of [Shared]ArrayBuffer backing stores" This reverts commit fcdf35e6d70d51699ece063e25dc705e80673308. Revert "[api] Remove previously deprecated Function::GetDisplayName()." This reverts commit 6165fef8cc9dde52973e54c915e6905221b3f8fb. Revert "[api] Remove deprecated Symbol::Name()" This reverts commit bbc72ef6c7d6d8e2c4dd074d7713e5c841003163. Revert API change for HeapProfiler::TakeHeapSnapshot This reverts a small part of 7f52e4f92d3d3ded9a1701ee2f93966075ae5004. Revert "[cpu-profiler] Reintroduce support for context filtering" This reverts commit 0aacfb2a6ecbeda1d1d97ca113afd8253a1b9670. Restore new argument for TakeHeapSnapshot method This creates a new TakeHeapSnapshotV8_92 method with the signature from 7f52e4f92d3d3ded9a1701ee2f93966075ae5004. It is necessary because the API is used internall by V8. Silence irrelevant warning V8 triggers it in the Name method. Revert "[api] Add v8::metrics::LongTaskStats for the LongTasks UKM" This reverts commit 521ae93bf652b0cc1fec1fdd788e3b80fb72a349. Move cage_base isolate data field Makes 3ada6f27404b4ffd6d3e97cf15be76672f60c10d ABI-compatible. Revert ABI-breaking change in FunctionTemplate::SetCallHandler Reverts part of a7980d43e030ba4bdb36813d4bc99f85982bf4ee and ad4eab00e7ec96730eb2c1b6ddcef14ba2e4becd. Revert "[api] Support PropertyAttribute in v8::Template::Set" This reverts commit 22a32f11f7a39e4a73105608a51ebab0ad97960f. Revert API change for FunctionTemplate::New This reverts the API change of 5f82dbbe534635a8b1e93f27e8fd7e68c0eaf291. Fix some reverts - constness of internal APIs has not external effect - restored API function must but adapted to moved internal API. Fix compilation of d8 and cctest PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Refs: v8/v8@edac496 PR-URL: #39470 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Beth Griggs <bgriggs@redhat.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
A header was moved. Refs: v8/v8@7f5383e PR-URL: #39469 Backport-PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
%_IsSmi was removed. %IsSmi can be used instead. Refs: v8/v8@863a2d6 PR-URL: #39469 Backport-PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Classes' "name" property is now installed between "length" and "prototype". Refs: v8/v8@224b659 PR-URL: #39469 Backport-PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
An error message changed. Refs: v8/v8@c0fd89c PR-URL: #39469 Backport-PR-URL: #39947 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: #39800 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Beth Griggs <bgriggs@redhat.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Stewart X Addison <sxa@redhat.com> Reviewed-By: Darshan Sen <raisinten@gmail.com>
Corepack provides shims for Yarn and pnpm in order to soften the developer experience when working on Node projects. Refs: #15244 Refs: nodejs/TSC#904 PR-URL: #39608 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #39773 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #39773 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Signed-off-by: James M Snell <jasnell@gmail.com> PR-URL: #39773 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #39828 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com>
Fixed comment for the description of INTERNAL_PREFIX in child_process whereas the value is present in the internal/child_process.js. PR-URL: #39308 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
PR-URL: #39880 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #39635 Reviewed-By: Bradley Farias <bradley.meck@gmail.com>
This testcase failed on Apple Silicon M1, add the error message pattern: `not a mach-o file` PR-URL: #39826 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Khaidi Chu <i@2333.moe>
This updates all sources in deps/openssl/openssl by: $ git clone https://github.com/quictls/openssl $ cd openssl $ git checkout OpenSSL_1_1_1l+quic $ cd ../node/deps/openssl $ rm -rf openssl $ cp -R ../openssl openssl $ rm -rf openssl/.git* openssl/.travis* $ git add --all openssl $ git commit openssl PR-URL: #39867 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Beth Griggs <bgriggs@redhat.com>
After an OpenSSL source update, all the config files need to be regenerated and committed by: $ make -C deps/openssl/config $ git add deps/openssl/config/archs $ git add deps/openssl/openssl/include/crypto/bn_conf.h $ git add deps/openssl/openssl/include/crypto/dso_conf.h $ git add deps/openssl/openssl/include/openssl/opensslconf.h $ git commit PR-URL: #39867 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Beth Griggs <bgriggs@redhat.com>
nodejs-github-bot
added
meta
Issues and PRs related to the general management of the project.
needs-ci
PRs that need a full CI run.
tools
Issues and PRs related to the tools directory.
v16.x
labels
Sep 6, 2021
/cc @nodejs/releasers @arcanis |
targos
added
release
Issues and PRs related to Node.js releases.
and removed
doc
Issues and PRs related to the documentations.
build
Issues and PRs related to build files or the CI.
meta
Issues and PRs related to the general management of the project.
tools
Issues and PRs related to the tools directory.
needs-ci
PRs that need a full CI run.
labels
Sep 6, 2021
Notable changes: crypto: * (SEMVER-MINOR) add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851 deps: * (SEMVER-MINOR) add corepack (Maël Nison) #39608 * (SEMVER-MINOR) update V8 to 9.3.345.16 (Michaël Zasso) #39947 module: * (SEMVER-MINOR) support pattern trailers (Guy Bedford) #39635 stream: * (SEMVER-MINOR) add stream.compose (Robert Nagy) #39029 PR-URL: #40011
targos
force-pushed
the
v16.9.0-proposal
branch
from
September 6, 2021 08:15
018e23a
to
b7c0d64
Compare
tniessen
approved these changes
Sep 6, 2021
There are a few test failures found by CITGM that are due to a change in an error message by V8. I opened issues in the relevant repositories. |
BethGriggs
approved these changes
Sep 6, 2021
richardlau
approved these changes
Sep 6, 2021
gengjiawen
approved these changes
Sep 7, 2021
XadillaX
approved these changes
Sep 7, 2021
targos
added a commit
that referenced
this pull request
Sep 7, 2021
Notable changes: crypto: * (SEMVER-MINOR) add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #39851 deps: * (SEMVER-MINOR) add corepack (Maël Nison) #39608 * (SEMVER-MINOR) update V8 to 9.3.345.16 (Michaël Zasso) #39947 module: * (SEMVER-MINOR) support pattern trailers (Guy Bedford) #39635 stream: * (SEMVER-MINOR) add stream.compose (Robert Nagy) #39029 PR-URL: #40011
targos
added a commit
to targos/nodejs.org
that referenced
this pull request
Sep 7, 2021
targos
added a commit
to nodejs/nodejs.org
that referenced
this pull request
Sep 7, 2021
janemaya002
reviewed
Sep 7, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate of #
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
2021-09-07, Version 16.9.0 (Current), @targos
Notable Changes
Corepack
Node.js now includes Corepack, a script that acts as a bridge between Node.js projects and the package managers they are intended to be used with during development.
In practical terms, Corepack will let you use Yarn and pnpm without having to install them - just like what currently happens with npm, which is shipped in Node.js by default.
Please head over to the Corepack documentation page for more information on how to use it.
Contributed by Maël Nison - #39608
V8 9.3
V8 is updated to version 9.3, which includes performance improvements and new JavaScript features.
Object.hasOwn
Object.hasOwn
is a static alias forObject.prototype.hasOwnProperty.call
:Error cause
Errors can now be optionally constructed with a
cause
option, pointing to another error.This adds a
cause
property on the new error:Contributed by Michaël Zasso - #39947
Other Notable Changes
34c627e4bc
] - (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #3985120da0a5379
] - (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635cb44781371
] - (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #39029Commits
2343c394fb
] - async_hooks: use resource stack for AsyncLocalStorage run (Stephen Belanger) #3989000951827cd
] - Revert "build: add windows-2022 to GitHub test matrix" (Michaël Zasso) #39982e7834535b3
] - build: add windows-2022 to GitHub test matrix (Michaël Zasso) #39857c49b0c0dd4
] - build: add support for Visual Studio 2022 (Michaël Zasso) #39857afdb665e57
] - build: fix find-inactive-collaborators workflow token (Rich Trott) #399090ff88f362f
] - build: update token used for pull requests (Rich Trott) #39907beca890330
] - build: adapt v8_pch.h to V8 9.3 (Michaël Zasso) #394692170346aa3
] - build: reset embedder string to "-node.0" (Michaël Zasso) #39947d33ab968ab
] - cluster: fix comment regarding child_process file (Yash Ladha) #39308585199497f
] - crypto: fix regression in RSA-PSS keygen (Tobias Nießen) #3993734c627e4bc
] - (SEMVER-MINOR) crypto: add RSA-PSS params to asymmetricKeyDetails (Tobias Nießen) #398511dd91582da
] - crypto: fix rsa-pss one-shot sign/verify error handling (Filip Skokan) #3983020cf47004e
] - crypto: fix JWK RSA-PSS SubtleCrypto.exportKey (Filip Skokan) #39828e25dc8e470
] - deps: upgrade npm to 7.21.1 (npm team) #399049270684837
] - deps: update archs files for OpenSSL-1.1.1l+quic (Richard Lau) #398674b5bbec6cc
] - deps: upgrade openssl sources to OpenSSL_1_1_1l+quic (Richard Lau) #3986771659fd4ba
] - (SEMVER-MINOR) deps: add corepack (Maël Nison) #396087470db0dfb
] - deps: restore minimum ICU version to 68 (Michaël Zasso) #3947092d83d18d2
] - deps: make V8 9.3 abi-compatible with 9.0 (Michaël Zasso) #399470140face81
] - deps: V8: cherry-pick 00bb1a77c03e (Darshan Sen) #398293e1053e755
] - deps: V8: cherry-pick 81814ed44574 (Stephen Belanger) #39719d9d0104878
] - deps: silence irrelevant V8 warning (Michaël Zasso) #38990cd9b03ea40
] - deps: silence irrelevant V8 warnings (Michaël Zasso) #37587b83cab712f
] - deps: fix V8 build issue with inline methods (Jiawen Geng) #35415068824d754
] - deps: make v8.h compatible with VS2015 (Joao Reis) #3211654f4f1af50
] - deps: V8: forward declaration ofRtl*FunctionTable
(Refael Ackermann) #3211610ba1cb8b2
] - deps: V8: patch register-arm64.h (Refael Ackermann) #321163ce6f72124
] - deps: V8: un-cherry-pick bd019bd (Refael Ackermann) #32116f43c292520
] - (SEMVER-MINOR) deps: update V8 to 9.3.345.16 (Michaël Zasso) #399479e782eb758
] - doc: remove {C,Dec}ompressionStream documentation (Luigi Pinca) #398997857e9cc77
] - doc: add descriptions about whenoptions.mode
is ignored (Ray) #39881d43b555047
] - doc: remove danbev from TSC member list (Daniel Bevenius) #39978fc01dd916e
] - doc: add missing changes to generateKeyPair(Sync) (Tobias Nießen) #39963953f2e9f88
] - doc: add nodejs/tweet issue creation to sec. doc (Daniel Bevenius) #3994029c4b07716
] - doc: update WASI example to use import.meta.url (Guy Bedford) #399259eb4a70c14
] - doc: move reference to OpenSSL flags SSL_OP_* (Tobias Nießen) #399358ea4befc82
] - doc: add docs for duplex.allowHalfOpen property (Tim Perry) #39126bc2b73ec9b
] - doc: add FrankQiu to a triager (FrankQiu) #399228b68f8ec38
] - doc: add VoltrexMaster to triagers (voltrexmaster) #399203a8f77ac0d
] - doc: document JavaScript tool for benchmark comparison (Michaël Zasso) #398354ac703ca8e
] - doc: add Mesteery to triagers (Mestery) #39887d059a5186b
] - doc: update maintaining openssl guide (Richard Lau) #39878486150580c
] - doc: move ERR_WORKER_UNSPPORTED_EXTENSION to legacy (Qingyu Deng) #39788a4b8c13798
] - events: protect property defs against prototype polution (James M Snell) #39773cfbe9065ae
] - events: add brand checks for detached accessors (James M Snell) #39773112af69194
] - fs: add docs and tests forAsyncIterable
support infh.writeFile
(Antoine du Hamel) #39836402071bc45
] - meta: remove duplicate AUTHORS entry for NigelKibodeaux (Rich Trott) #399673588f07603
] - meta: add mailmap entry for Ethan-Arrowood (Rich Trott) #39930259e0cf4d7
] - meta: add mailmap entry for branisha (Rich Trott) #39889bc236a6714
] - meta: update .mailmap to remove duplicate AUTHORS entry for addaleax (Rich Trott) #3988020da0a5379
] - (SEMVER-MINOR) module: support pattern trailers (Guy Bedford) #39635879dc4658e
] - src: remove usage of AllocatedBuffer from src/node_buffer.cc (Darshan Sen) #3994179ce096470
] - src: remove extra semicolons outside fns (Shelley Vohr) #39800cb44781371
] - (SEMVER-MINOR) stream: add stream.compose (Robert Nagy) #39029ca9b781d20
] - test: useassert.match
instead ofregexp.test
(Michaël Zasso) #39928007e2855af
] - test: use error code mapping in place of raw errno (Darshan Sen) #3867500529b0ef2
] - test: add test to verify other extension can be loaded by worker (Qingyu Deng) #397884e7212c88c
] - test: update error message keywords (leeight) #39826549d717722
] - test: adapt test-fs-read to V8 9.3 (Michaël Zasso) #39469644b25e068
] - test: adapt test-util-inspect to V8 9.3 (Michaël Zasso) #39469105bff9ea5
] - test: adapt test-v8-flags to V8 9.3 (Michaël Zasso) #39469d92bd9a982
] - tools: add support for import assertions in linter (Antoine du Hamel) #399249763561e30
] - tools: update gyp-next to v0.10.0 (Michaël Zasso) #398579f105c73fc
] - tools: update V8 gypfiles for 9.3 (Michaël Zasso) #3946916271d2f50
] - worker: remove file extension check (Qingyu Deng) #397883b1ce93e03
] - worker: add brand checks for detached MessageEvent accessors (James M Snell) #39773