Skip to content

javascript extraction method gives unexpected results with escaped newlines #1056

@oomsveta

Description

@oomsveta

Hello, the other day I noticed an inconsistent behavior between the python and javascript extraction methods:

>>> list(extract("javascript", BytesIO(b"_('hey\\\nlol')")))
[(1, 'hey\nlol', [], None)]
>>> list(extract("python",     BytesIO(b"_('hey\\\nlol')")))
[(1, 'heylol', [], None)]

(Notice the extra newline between "hey" and "lol" with the javascript extraction method).

I think it's most likely a bug, and the JavaScript should behave the same as the Python.
This is especially bad since the current behavior also differs from how the JavaScript parser interprets it:

const hey = _("hey \
lol"
);

The content of the variable is heylol, but the extracted source term is hey\nlol. The mismatch between the two will prevent the string from being translated by gettext at all.

Could you take a look? Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions