| Age | Commit message (Collapse) | Author | 
 | 
* thx seproDev, bashonly: yt-dlp/yt-dlp#12760, yt-dlp/yt-dlp#12761:
  - Improve nested attribute support
  - Pass global stack when extracting objects
  - interpret_statement: Match attribute before indexing
  - Fix assignment to array elements with nested brackets
  - Add new signature tests
  - Invalidate JS function cache
  - Avoid testdata dupes now that we cache by URL
* rework nsig function name search
* fully fixes #33102
* update cache required versions
* update program version
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
* from yt-dlp/yt-dlp#12313
* also fix d7c2708
 | 
 | 
* add JS_Date class implementing JS Date
* support constructor args other than date string
* support static methods of Date
* Date objects are still automatically coerced to timestamp before using in JS.
 | 
 | 
 | 
 | 
* NB: _separate() is looking creaky
 | 
 | 
* push, unshift return new length
* impove edge cases for push/pop, shift/unshift, forEach, indexOf, charCodeAt
* increase test coverage
 | 
 | 
* improve split/join edge cases
* correctly implement regex split (not like re.split)
 | 
 | 
* addition becomes concat with a string operand
* improve handling of edgier cases
* arithmetic in float like JS (more places need cast to int?)
* increase test coverage
 | 
 | 
* extend single indexing with improved RE (should probably use/have used _separate_at_paren())
* fix some cases that should have given undefined, not throwing
* standardise RE group names
* support length of objects, like {1: 2, 3: 4, length: 42}
 | 
 | 
* reimplement loose equality according to MDN (eg, 1 == "1")
* improve strict equality (eg, "abc" === "abc" but 'abc' is not 'abc')
* add tests for above
 | 
 | 
 | 
 | 
Partly taken from yt-dlp/yt-dlp#10664, thx seproDev
        Fixes #32896
 | 
 | 
* support `prototype` for call() and apply() (yt-dlp/yt-dlp#10392, thx Grub4k)
* map JS `Array` to `list`
 | 
 | 
Thx: various yt-dlp authors
 | 
 | 
* https://github.com/yt-dlp/yt-dlp/commit/8f53dc4
* thx pukkandan
 | 
 | 
 | 
 | 
Thx bashonly: https://github.com/ytdl-org/youtube-dl/issues/32292#issuecomment-1585639223
Fixes #32292
 | 
 | 
* update signature tests
* clarify NaN handling
 | 
 | 
* also add _NaN
* also pull function naming from yt-dlp
 | 
 | 
Resolves #32066
 | 
 | 
* For performance, make regexp object instantiation lazy
 * Other small performance improvements
 | 
 | 
* support subset `... else if ...`
* support `while`
* add `RegExp` class
* generalise `new` support
* limited more debug strings
* matching test changes
 | 
 | 
Fix for yt-dlp/yt_dlp#6131
Closes #31509
 | 
 | 
* add NaN
* allow any white-space character for `after_op`
* align with yt-dlp f26af78a8ac11d9d617ed31ea5282cfaa5bcbcfa (charcodeAt and bitwise overflow)
* allow escaping in regex, fixing player c57c113c
 | 
 | 
 | 
 | 
* from https://github.com/yt-dlp/yt-dlp/commit/164b03c4864b0d44cfee5e7702f7c2317164a6cf
* added tests
 | 
 | 
* add compat_re_Pattern
* improve compat_collections_chain_map
* use class JS_Undefined
* remove unused code
 | 
 | 
* based on https://github.com/yt-dlp/yt-dlp/commit/f6ca640b122239d5ab215f8c2564efb7ac3e8c65, thanks pukkandan
* adds parse support for regexp flags
 | 
 | 
* operator ??
* operator ?.
* operator **
* accurate operator functions
* `undefined` handling
* object literals {a: 1, "b": expr}
* more tests for weird JS comparisons: see https://github.com/ytdl-org/youtube-dl/issues/31173#issuecomment-1217854397.
 | 
 | 
(#31170)
* back-port from yt-dlp 8f53dc44a0cc1c2d98c35740b9293462c080f5d0, thanks pukkandan
* also support void, improve <</>> precedence, improve expressions in comma-list
* add more tests
 | 
 | 
Add https://github.com/yt-dlp/yt-dlp/commit/a1fc7ca0743c8df06416e68ee74b64e07dfe7135
Thanks coletdjnz
 | 
 | 
 | 
 | 
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.
See https://github.com/PyCQA/pycodestyle/issues/400
See also #10689; thanks @stepshal for first mentioning this issue and
initial patches
 | 
 | 
 | 
 | 
 | 
 | 
We need a proper lexer to be able to understand YouTube's code, which contains /* inside of strings.
For now it's sufficient to just disable comment support altogether.
Fixes #4976, fixes #4979, fixes #4980, fixes #4981, fixes #4982.
Closes #4977.
 | 
 | 
In preparation for #4822, extend jsinterp by a lot. (We may even have to/want to write a proper interpreter with actual parsing)
 |