<commit_before>Changelog
=========

> **Tags:**
> - [New Feature]
> - [Bug Fix]
> - [Documentation]
> - [Internal]
> - [Polish]
> - [Change]

## 4.0.0

- **New Feature**
  - Add `moduleSource` option to auto import needed iDOM methods
    - [#71](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/71)
  - Add `runtimeModuleSource` option to auto import needed runtime methods
    - [#72](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/72)
  - Add `spreadAttribute` runtime method
    - [#59](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/59)
  - Defer calling functions until wrapper executes
    - [#75](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/75)
- **Bug Fix**
  - Forbid error caused by mutating `key` after referencing in another attribute
    - [08c54e5b](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/08c54e5b3b3e082d6a7ff8b628373808743cc9cf)
  - Ensure logical expressions do not call iDOM methods
    - [42778115](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/42778115d0eefcdab4b1f6227be3aee3bd00de35)
  - Ensure conditional expressions do not call iDOM methods
    - [d9462c5c](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/d9462c5c2e92d94e08f9871bfa226ca025628214)
- **Polish**
  - Convert "special" literals (numbers, `undefined`, `null`) to strings
    - [#64](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/64)
  - Template strings no longer require a `renderArbitrary` call
    - [1009af83](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/1009af83006949e0956ee79c34f349ad14eed0fd)
  - Unwrap a child expression's sequence to avoid unneeded `renderArbitrary` calls
    - [bac0d802](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/bac0d802cf55dfdac0ef98b8eee10f46cd733e04)
    - [172bd0ba](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/172bd0ba7f13b4c448db271e16a10f49ee09c1be)
    - [644cf5a5](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/644cf5a58cfb91b01b7a868669478a83d10052d1)
  - Use more performant jsxWrapper<commit_msg>Update Changelog<commit_after>Changelog
=========

> **Tags:**
> - [New Feature]
> - [Bug Fix]
> - [Documentation]
> - [Internal]
> - [Polish]
> - [Change]

## 4.0.1

- **Polish**
  - Attempt to generate similar hoist names, to aid debugging
    - [7fa4ea68](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/7fa4ea6814185e069525ab13c5f7a0e3797c4ea9)

## 4.0.0

- **New Feature**
  - Add `moduleSource` option to auto import needed iDOM methods
    - [#71](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/71)
  - Add `runtimeModuleSource` option to auto import needed runtime methods
    - [#72](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/72)
  - Add `spreadAttribute` runtime method
    - [#59](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/59)
  - Defer calling functions until wrapper executes
    - [#75](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/75)
- **Bug Fix**
  - Forbid error caused by mutating `key` after referencing in another attribute
    - [08c54e5b](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/08c54e5b3b3e082d6a7ff8b628373808743cc9cf)
  - Ensure logical expressions do not call iDOM methods
    - [42778115](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/42778115d0eefcdab4b1f6227be3aee3bd00de35)
  - Ensure conditional expressions do not call iDOM methods
    - [d9462c5c](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/d9462c5c2e92d94e08f9871bfa226ca025628214)
- **Polish**
  - Convert "special" literals (numbers, `undefined`, `null`) to strings
    - [#64](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/pull/64)
  - Template strings no longer require a `renderArbitrary` call
    - [1009af83](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/1009af83006949e0956ee79c34f349ad14eed0fd)
  - Unwrap a child expression's sequence to avoid unneeded `renderArbitrary` calls
    - [bac0d802](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/bac0d802cf55dfdac0ef98b8eee10f46cd733e04)
    - [172bd0ba](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/172bd0ba7f13b4c448db271e16a10f49ee09c1be)
    - [644cf5a5](https://github.com/jridgewell/babel-plugin-transform-incremental-dom/commit/644cf5a58cfb91b01b7a868669478a83d10052d1)
  - Use more performant jsxWrapper
{'fraction_non_alphanumeric': 0.13255523134639433, 'fraction_numerical': 0.1031679866611088, 'mean_word_length': 4.809927360774818, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 17, 'https://': 25, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4347756', 'n_tokens_mistral': 2017, 'n_tokens_neox': 1708, 'n_words': 238}