title: Svelte inconsistency in binding
body: <p>I'm new to Svelte and was working with bindings.</p>
  <p>Here's my code:</p>
  <p><a href="https://svelte.dev/repl/1cad59da1c994c37bf1c5be16833315f?version=3.38.2" rel="nofollow noreferrer">REPL</a></p>
  <p><strong>test.svelte</strong></p>
  <pre class="lang-svelte prettyprint-override"><code>&lt;script&gt;
      let a = 1000000;
      let b = &quot;ABCDeFgH&quot;;
  &lt;/script&gt;
  
  A: &lt;input bind:value={a} /&gt;
  &lt;br&gt;&lt;br&gt;
  B: &lt;input bind:value={b} /&gt;
  &lt;br&gt;
  &lt;!-- works only on first run --&gt;
  &lt;p&gt;Formatted &lt;strong&gt;a&lt;/strong&gt; is {a.toLocaleString(&quot;en-US&quot;)} &lt;/p&gt;
  
  &lt;!-- works on update --&gt;
  &lt;p&gt;Formatted &lt;strong&gt;b&lt;/strong&gt; is {b.toLowerCase()}&lt;/p&gt;
  </code></pre>
  <p>The <code>toLocaleString()</code> method on <code>a</code> works on the first load but does not format the output (with commas) when updating the number using the input box during runtime.</p>
  <p>However, the <code>toLowerCase()</code> seems to work fine even with updates to <code>b</code> during runtime.</p>
  <p>What am I missing here?</p>