Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.68 to 1.0.69.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.69</h2>
<ul>
<li>Implement Hash for serde_json::Number (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/814">#814</a>, thanks <a href="https://github.com/timothee-haudebourg"><code>@timothee-haudebourg</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5c4f8b2254"><code>5c4f8b2</code></a> Release 1.0.69</li>
<li><a href="0035947522"><code>0035947</code></a> Touch up PR 814</li>
<li><a href="a28b1b1934"><code>a28b1b1</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/814">#814</a> from timothee-haudebourg/hash-numbers-only</li>
<li><a href="f53ae31df6"><code>f53ae31</code></a> Use the same hash for +0 and -0.</li>
<li><a href="8b35517540"><code>8b35517</code></a> Revert "Disable broken fuzz build in CI"</li>
<li><a href="d12fbb9520"><code>d12fbb9</code></a> Fix <code>NaN</code> typo.</li>
<li><a href="48393aba40"><code>48393ab</code></a> Better justification for the use of <code>f64::to_bits</code></li>
<li><a href="9046e3fa86"><code>9046e3f</code></a> Avoid <code>Self::</code> for older Rust versions.</li>
<li><a href="c3ac6c0077"><code>c3ac6c0</code></a> Manual implementation of <code>Number</code>'s <code>PartialEq</code>.</li>
<li><a href="10655c7639"><code>10655c7</code></a> Use <code>core::hash</code> instead of <code>std::hash</code>.</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/json/compare/v1.0.68...v1.0.69">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.68&new-version=1.0.69)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Nodes implement CodeGen which generates instructions onto a stack held in Context.
The VM will interpret the instructions from Context.
There are some issues:
- Only basic instructions are added, but I'm working off https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals/Bytecode for now it should be easy to add more in.
- The Stack is a Vec, this isn't ideal (we may be able to live with it for now) but the stack should really be a fixed sized array. This isn't possible because Value can't be copied in there as it holds Rc and Gc values. Can we have fixed-sized Values that hold a pointer? Something like the "stackvec" crate should help
- put all VM related code behind "vm" feature flag
Co-authored-by: Jason Williams <jwilliams720@bloomberg.net>
Co-authored-by: Halid Odat <halidodat@gmail.com>