Skip to content

[Bug]: Symbol.toPrimitive returning non-primitive value in class computed field #15178

@p51lee

Description

@p51lee

💻

  • Would you like to work on a fix?

How are you using Babel?

Other (Next.js, Gatsby, vue-cli, ...)

Input code

class x { [ { [ Symbol . toPrimitive ] : () => [ ] } ] ; } 

Configuration file name

No response

Configuration

No response

Current and expected behavior

Input code is expected to throw TypeError but output code is terminated with no error:

$ node input.js
input.js:1
class x { [ { [ Symbol . toPrimitive ] : () => [ ] } ] ; }
                                         ^

TypeError: Cannot convert object to primitive value
    at Object.<anonymous> (input.js:1:42)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

Node.js v18.11.0
$ node output.js # no error

Environment

Reprodution on Babel's own REPL

Possible solution

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Spec: Class FieldsoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions