sveltejs / svelte

Cybernetically enhanced web apps
https://svelte.dev
MIT License
76.8k stars 3.98k forks source link

Svelte 5: Assigning `this` to variable exposes signals #11476

Closed mjadobson closed 1 week ago

mjadobson commented 1 week ago

Describe the bug

<script>
  class A {
    #b = $state(0)
    c() {
      let self = this;
      return self.#b;
    }
  }

  let a = new A();
  console.log(a.c()); // {"f":0,"reactions":null,"v":0,"version":0,"inspect":{}}
</script>

Reproduction

https://svelte-5-preview.vercel.app/#H4sIAAAAAAAAEz2OzQrCMBCEX2VZPSRQqudqhV496MGj8RDjVgMxluxWkdJ3l_h3mWG-YWAGbH0gxmo_YLRXwgqbrsMC5dnlwHcKQlgg3_rkMlmyS76TlYlGXLDM0MCQg5HJEWqYslghNdcf5pT-1UYCCTCFFmqQi-fFjyeSPsV3VU6OXzxme0ueWagh0gMapRcmLmf_F8N6t92ULMnHs2-fypZOaT1igdfbybeeTlhJ6mk8jC_-4PxX7QAAAA==

Logs

No response

System Info

Svelte 5.0.0-next.123

Severity

annoyance