Commit Graph

914 Commits

Author SHA1 Message Date
Asger F
cfa1a9b603 JS: Update extractor version string 2025-04-10 07:20:53 +02:00
Asger F
1434f7acd2 JS: Tolerate trailing comma in JSON array
Previously we'd fail to extract some tsconfig.json files because of this.
2025-04-10 07:20:51 +02:00
Asger F
800dd168c2 JS: Add failing TRAP test for trailing comma 2025-04-10 07:20:49 +02:00
Asger F
ee867e99c7 Merge pull request #19117 from lcartey/lcartey/support-sap-json-formats
JavaScript: Add support for indexing additional SAP related JSON files
2025-03-31 10:30:11 +02:00
Asger F
c8817d9667 JS: Parse with proper locations 2025-03-27 11:51:23 +01:00
Asger F
cc2bec0808 JS: Ensure correct value is used in parseNameExpression()
The call to expect() below here updates 'token' and 'value' to that of the NEXT token (not the name).

The code happened to work because the 'value' field is only updated if a token with a relevant value is found. E.g. if a name token could be followed by another name, then we would have seen the wrong name here.
2025-03-27 11:51:21 +01:00
Asger F
b1554443d8 JS: Update TRAP output 2025-03-27 11:51:19 +01:00
Asger F
fa53ff9f3e JS: Update extractor version string 2025-03-27 11:51:16 +01:00
Asger F
3a6089740e JS: Separate JSDoc qualified names into individual identifiers 2025-03-27 11:51:14 +01:00
Asger F
c61454b5ca JS: Remove unused 'spec' field 2025-03-27 11:51:13 +01:00
Luke Cartey
8814077c76 Add support for additional SAP JSON formats. 2025-03-25 17:01:37 +00:00
Asger F
bf9d7484e4 JS: Use StringBuilder when building up type name
This code was a bit of a performance cringe. It copied every character
into a temporary array, copied that into a String, and slow-appended
that onto another String.

Note that the call to Characters.toChars is redundant here as advance()
doesn't return a code point; it returns -1 or a UTF-16 char. The -1 case
is checked for before reaching the call, so we can just cast it to
a char and use it directly.

We use a StringBuilder to accumulate the string. Normally it's faster
to track the start/end indices and do a substring(), but that won't
work in the JSDoc extractor because of the star-skipping logic in
advance().
2025-03-20 09:43:10 +01:00
Napalys
c93be70053 Rename validation methods for type expressions and added recursive call for type validation.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-14 14:58:27 +01:00
Napalys
1468e81c55 Ensure interface extends valid expr. 2025-03-14 13:41:37 +01:00
Napalys Klicius
a4f2264f17 Merge pull request #18899 from Napalys/js/ecma-2024-regex
JS: Add ECMAScript 2024 `v` Flag Operators for Regex Parsing
2025-03-11 12:50:44 +01:00
Napalys Klicius
3191b2c6fc Update javascript/extractor/src/com/semmle/js/parser/RegExpParser.java
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com>
2025-03-11 09:40:24 +01:00
Napalys
08c07f815f Improved documentation, removed union fram change note. 2025-03-11 08:30:17 +01:00
Napalys
9c8e0a5537 Applied changes from comments.
Co-authored-by: Asgerf <asgerf@github.com>
2025-03-10 13:29:05 +01:00
erik-krogh
752fc64f42 bump to stable 5.8 release 2025-03-10 09:21:25 +01:00
erik-krogh
b641caa508 update TypeScript version to 5.8.1-RC 2025-03-10 09:20:29 +01:00
Napalys
95d05ceab8 Now store vFlagEnabled instead of each time searching for it.
Added `uFlagEnabled` for checking how should `\p{}` be treated. And small optimization.
2025-03-05 10:34:38 +01:00
Napalys
8086c25abe Removed Union as standard character class is already an union. 2025-03-05 10:07:20 +01:00
Napalys
8099423b6d Renamed character class operators lists to elements. 2025-03-05 09:34:21 +01:00
Napalys
9ea89cd63f Added a test case from #18854 2025-03-05 09:34:20 +01:00
Napalys
fe6de2f672 Added support for character class union in regex processing 2025-03-03 14:37:46 +01:00
Napalys
1e05f327d6 Added test cases for union. 2025-03-03 14:37:44 +01:00
Napalys
3664d50772 Added support for -- subtraction opetor. 2025-03-03 14:37:43 +01:00
Napalys
ee83c42b71 Added test cases for subtraction --. 2025-03-03 14:37:42 +01:00
Napalys
381b5ebe8a Added intersection support 2025-03-03 14:37:40 +01:00
Napalys
fa5093f6ad Added test cases for intersection 2025-03-03 14:37:39 +01:00
Napalys
2333c538d9 Added ability to parse nested character classes while using v flag. 2025-03-03 14:37:38 +01:00
Napalys
de6f3b1d04 Add additional test cases. 2025-03-03 14:37:37 +01:00
Napalys
ab7e08f40f Added test cases for nested character class. 2025-03-03 14:37:35 +01:00
Napalys
ed418be97a Add support for '\q{}' escape sequence in regular expressions. 2025-03-03 14:37:20 +01:00
Napalys
d162acf02c Added quoted string \q parser test cases 2025-03-02 17:09:01 +01:00
Napalys
cb448db3ce Exposed flags to the regex parser 2025-03-02 17:08:52 +01:00
Chris Smowton
4567e02b8c Regularise extractor pack licenses to all cite the MIT license that covers the whole CodeQL repository 2025-02-20 18:55:55 +00:00
Asger F
b3f7cd988b JS: Extract TS snippets with no tsconfig.json file 2025-02-18 12:43:13 +01:00
erik-krogh
55b8e8b748 fix the ECMAScript version to be ES2024 2025-02-16 19:06:14 +01:00
Napalys
4097aa9f78 JS: Added ecma2021, thus extractor now can deal with RegExp v flag 2025-02-16 18:31:06 +01:00
Asger F
6ae06aed9e Update javascript/extractor/src/com/semmle/js/extractor/CFGExtractor.java
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-02-06 10:03:28 +01:00
Asger F
5613661a48 JS: Update another TRAP file 2025-02-04 14:02:51 +01:00
Asger F
f0afd6aa5f Merge branch 'main' into js/hoist-in-block 2025-02-04 14:01:57 +01:00
Asger F
d22268e119 JS: Update TRAP again
The extra successor edge was due to visiting hoisted function declaration IDs multiple times,
which has now been fixed.
2025-02-04 10:47:08 +01:00
Asger F
1e5885ea1e JS: Remove hoisting code from functions
'buildFunctionBody' no longer needs to handle hoisting, because hoisting now happens when visiting the block statement that is the body of the function.

Note that curly-brace functions contain a block statement as their body, not a list of statements.
2025-02-04 10:41:47 +01:00
Asger F
427e329363 JS: Bump extractor version string 2025-02-03 15:21:41 +01:00
Asger F
7eebe468ee JS: Update TRAP output
This seems to have reordered the TRAP lines but without semantic change.
2025-02-03 15:21:09 +01:00
Asger F
be082578d4 JS: Hoist function decls in a block to the top of the block 2025-02-03 15:21:08 +01:00
Asger F
2d36a5d478 JS: Use JSX syntax in first attempt when extension is .jsx 2025-02-03 13:17:15 +01:00
Asger F
d66d1a79d6 JS: Also update legacy entry point used by qltest 2025-01-29 11:14:10 +01:00