1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 22:25:07 +00:00
serenity/Libraries/LibJS
Linus Groh 9e80c67608 LibJS: Fix "use strict" directive false positives
By having the "is this a use strict directive?" logic in
parse_string_literal() we would apply it to *any* string literal, which
is incorrect and would lead to false positives - e.g.:

    "use strict" + 1
    `"use strict"`
    "\123"; ({"use strict": ...})

Relevant part from the spec which is now implemented properly:

[...] and where each ExpressionStatement in the sequence consists
entirely of a StringLiteral token [...]

I also got rid of UseStrictDirectiveState which is not needed anymore.

Fixes #3903.
2020-11-02 13:13:54 +01:00
..
Heap Everywhere: Add missing <AK/TemporaryChange.h> includes 2020-10-15 23:49:53 +02:00
Runtime LibJS: Tweak generated source in 'new Function()' to match ES 2015 spec 2020-10-29 22:27:55 +01:00
Tests LibJS: Fix "use strict" directive false positives 2020-11-02 13:13:54 +01:00
AST.cpp LibJS: Check for exception after executing (do)while test expression 2020-10-23 19:06:57 +02:00
AST.h LibJS: Fix "use strict" directive false positives 2020-11-02 13:13:54 +01:00
CMakeLists.txt LibJS: Split Heap into per-cell-size allocators 2020-10-06 18:50:47 +02:00
Console.cpp LibJS: Move Console from Interpreter to GlobalObject 2020-09-29 21:15:06 +02:00
Console.h LibJS: Move Console from Interpreter to GlobalObject 2020-09-29 21:15:06 +02:00
Forward.h LibJS: Split Heap into per-cell-size allocators 2020-10-06 18:50:47 +02:00
Interpreter.cpp LibJS: Cache commonly used FlyStrings in the VM 2020-10-13 23:57:45 +02:00
Interpreter.h LibJS: Remove some unused Interpreter member functions 2020-10-04 23:10:07 +02:00
Lexer.cpp LibJS: "-->" preceded by token on same line isn't start of HTML-like comment 2020-10-29 22:28:15 +01:00
Lexer.h LibJS: "-->" preceded by token on same line isn't start of HTML-like comment 2020-10-29 22:28:15 +01:00
MarkupGenerator.cpp LibJS: Handle multi-line source code in MarkupGenerator 2020-10-31 20:52:54 +01:00
MarkupGenerator.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
Parser.cpp LibJS: Fix "use strict" directive false positives 2020-11-02 13:13:54 +01:00
Parser.h LibJS: Fix "use strict" directive false positives 2020-11-02 13:13:54 +01:00
Token.cpp LibJS: Use GenericLexer for Token::string_value() 2020-10-29 11:52:31 +01:00
Token.h LibJS: Add message string to Token 2020-10-26 21:38:34 +01:00