mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
docs(transformer): add documentation for optional-catch-binding plugin (#5064)
follow-up #4881
This commit is contained in:
parent
f73d486d25
commit
d50eb72399
1 changed files with 34 additions and 15 deletions
|
|
@ -1,3 +1,37 @@
|
|||
//! ES2019: Optional Catch Binding
|
||||
//!
|
||||
//! This plugin transform catch clause without parameter to add a parameter called `unused` in catch clause.
|
||||
//!
|
||||
//! > This plugin is included in `preset-env`, in ES2019
|
||||
//!
|
||||
//! ## Example
|
||||
//!
|
||||
//! Input:
|
||||
//! ```js
|
||||
//! try {
|
||||
//! throw 0;
|
||||
//! } catch {
|
||||
//! doSomethingWhichDoesNotCareAboutTheValueThrown();
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! Output:
|
||||
//! ```js
|
||||
//! try {
|
||||
//! throw 0;
|
||||
//! } catch (_unused) {
|
||||
//! doSomethingWhichDoesNotCareAboutTheValueThrown();
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! ## Implementation
|
||||
//!
|
||||
//! Implementation based on [@babel/plugin-transform-optional-catch-binding](https://babel.dev/docs/babel-plugin-transform-optional-catch-binding).
|
||||
//!
|
||||
//! ## References:
|
||||
//! * Babel plugin implementation: <https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding>
|
||||
//! * Optional catch binding TC39 proposal: <https://github.com/tc39/proposal-optional-catch-binding>
|
||||
|
||||
use std::cell::Cell;
|
||||
|
||||
use oxc_ast::ast::*;
|
||||
|
|
@ -7,11 +41,6 @@ use oxc_traverse::TraverseCtx;
|
|||
|
||||
use crate::context::Ctx;
|
||||
|
||||
/// ES2019: Optional Catch Binding
|
||||
///
|
||||
/// References:
|
||||
/// * <https://babel.dev/docs/babel-plugin-transform-optional-catch-binding>
|
||||
/// * <https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding>
|
||||
pub struct OptionalCatchBinding<'a> {
|
||||
_ctx: Ctx<'a>,
|
||||
}
|
||||
|
|
@ -22,16 +51,6 @@ impl<'a> OptionalCatchBinding<'a> {
|
|||
}
|
||||
|
||||
/// If CatchClause has no param, add a parameter called `unused`.
|
||||
///
|
||||
/// ```ts
|
||||
/// try {}
|
||||
/// catch {}
|
||||
/// ```
|
||||
/// too
|
||||
/// ```ts
|
||||
/// try {}
|
||||
/// catch (_unused) {}
|
||||
/// ```
|
||||
#[allow(clippy::unused_self)]
|
||||
pub fn transform_catch_clause(&self, clause: &mut CatchClause<'a>, ctx: &mut TraverseCtx<'a>) {
|
||||
if clause.param.is_some() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue