-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
insertBefore
now correctly updates references
#1531
insertBefore
now correctly updates references
#1531
Conversation
I don't suppose we can capture this in a test somehow? Does this have a real-world impact on any of the language definitions? |
We could do that with ease. The last expression of #1530 is basically that.
No, it doesn't have any impact right now because there is an easy workaround: This is also the workaround I used when discovering the bug. |
If there are, can we remove those workarounds? That would also help to ensure the fix produces the result we expect. |
Ok, so I went through all languages and found that only JS and PHP used the workaround I described. What's even more interesting is that some languages didn't even care about the bug. They used different versions of their own language and the tests did not capture it. Despite the different language definitions, I wasn't able to find any differences in their examples. We should probably extend the tests of both languages. Btw. JS and PHP both fail their tests without the workaround using the old |
This looks good to me! |
Resolves [bug 1538693](https://bugzilla.mozilla.org/show_bug.cgi?id=1538693). <!-- # ------------------------ >8 ------------------------ Remove everything below this line from the commit message --> <details><summary> <h2>Kuma affecting changes:</h2> <table><td> 📝 <strong>Note:</strong> See <a href="https://github.com/PrismJS/prism/releases/tag/v1.16.0">PrismJS/[email protected]</a> for a full list of changes. </td></table></summary> ### Updated components * __C__ * Improve C language (PrismJS/prism#1697) PrismJS/prism@7eccea5c * __C-like__ * Simplify function pattern of C-like language (PrismJS/prism#1552) PrismJS/prism@b520e1b6 * __C/C++/Java__ * Operator fixes (PrismJS/prism#1528) PrismJS/prism@7af8f8be * __CSS__ * Fix tokenizing !important (PrismJS/prism#1585) PrismJS/prism@c1d6cb85 * Added the comma to the list of CSS punctuation PrismJS/prism@7ea2ff28 * CSS: Comma punctuation (PrismJS/prism#1632) PrismJS/prism@1b812386 * Reuse CSS selector pattern in CSS Extras (PrismJS/prism#1637) PrismJS/prism@e2f2fd19 * Fixed CSS extra variable (PrismJS/prism#1649) PrismJS/prism@9de47d3a * Identify CSS units and variables (PrismJS/prism#1450) PrismJS/prism@5fcee966 * Allow multiline CSS at-rules (PrismJS/prism#1676) PrismJS/prism@4f6f3c7d * CSS: Highlight attribute selector (PrismJS/prism#1671) PrismJS/prism@245b59d4 * CSS: Selectors can contain any string (PrismJS/prism#1638) PrismJS/prism@a2d445d0 * CSS extras: Highlighting for pseudo class arguments (PrismJS/prism#1650) PrismJS/prism@70a40414 * __Java__ * Add Java 10 support (PrismJS/prism#1549) PrismJS/prism@8c981a22 * Added module keywords to Java. (PrismJS/prism#1655) PrismJS/prism@6e250a5f * Improve Java (PrismJS/prism#1474) PrismJS/prism@81bd8f0b * __JavaScript__ * Fix regex for `catch` and `finally` (PrismJS/prism#1527) PrismJS/prism@ebd1b9a6 * Highlighting of supposed classes and functions (PrismJS/prism#1482) PrismJS/prism@c40f6047 * Added support for JS BigInt literals (PrismJS/prism#1542) PrismJS/prism@2b62e57b * Fixed lowercase supposed class names (PrismJS/prism#1544) PrismJS/prism@a47c05ad * Fixes regex for JS examples (PrismJS/prism#1591) PrismJS/prism@b41fb8f1 * Improve regex detection in JS (PrismJS/prism#1473) PrismJS/prism@2a4758ab * Identify JavaScript function parameters (PrismJS/prism#1446) PrismJS/prism@0cc8c56a * Improved JavaScript parameter recognization (PrismJS/prism#1722) PrismJS/prism@57a92035 * Make `undefined` a keyword in JS (PrismJS/prism#1740) PrismJS/prism@d9fa29a8 * Fix `function-variable` in JS (PrismJS/prism#1739) PrismJS/prism@bfbea4d6 * Improved JS constant pattern (PrismJS/prism#1737) PrismJS/prism@7bcec584 * Improved JS function pattern (PrismJS/prism#1736) PrismJS/prism@8378ac83 * JS: Fixed variables named "async" (PrismJS/prism#1738) PrismJS/prism@3560c643 * JS: Keyword fix (PrismJS/prism#1808) PrismJS/prism@f2d8e1c7 * __JSON__ / __JSONP__ * Fix bugs in JSON language (PrismJS/prism#1479) PrismJS/prism@74fe81c6 * Adds support for comments in JSON (PrismJS/prism#1595) PrismJS/prism@8720b3e6 * Cleaned up JSON (PrismJS/prism#1596) PrismJS/prism@da474c77 * Added `keyword` alias to JSON's `null` (PrismJS/prism#1733) PrismJS/prism@eee06649 * Fix JSONP support (PrismJS/prism#1745) PrismJS/prism@b5041cf9 * Fixed JSON/JSONP examples (PrismJS/prism#1765) PrismJS/prism@ae4842db * __Markup__ * Decouple XML from Markup (PrismJS/prism#1603) PrismJS/prism@0030a4ef * Fix for markup attributes (PrismJS/prism#1752) PrismJS/prism@c3862a24 * Markup: Added support for CSS and JS inside of CDATAs (PrismJS/prism#1660) PrismJS/prism@57127701 * Markup `addInline` improvements (PrismJS/prism#1798) PrismJS/prism@af67c32e * __Rust__ * Add missing keywords (PrismJS/prism#1634) PrismJS/prism@3590edde ### Updated plugins * Better class name detection for plugins (PrismJS/prism#1772) PrismJS/prism@c9762c6f * __Line Numbers__ * Added inheritance for the `line-numbers` class (PrismJS/prism#1799) PrismJS/prism@14be7489 ### Other changes * __Core__ * `insertBefore` now correctly updates references (PrismJS/prism#1531) PrismJS/prism@9dfec340 * Invoke `callback` after `after-highlight` hook (PrismJS/prism#1588) PrismJS/prism@bfbe4464 * Improve `Prism.util.type` performance (PrismJS/prism#1545) PrismJS/prism@2864fe24 * Remove unused `insertBefore` overload (PrismJS/prism#1631) PrismJS/prism@39686e12 * Ignore duplicates in insertBefore (PrismJS/prism#1628) PrismJS/prism@d33d259c * Remove the Prism.tokenize language parameter (PrismJS/prism#1654) PrismJS/prism@fbf0b094 * Call `insert-before` hook properly (PrismJS/prism#1709) PrismJS/prism@393ab164 * Improved languages.DFS and util.clone (PrismJS/prism#1506) PrismJS/prism@152a68ef * Core: Avoid redeclaring variables in util.clone (PrismJS/prism#1778) PrismJS/prism@b06f532f * Made prism-core a little more editor friendly (PrismJS/prism#1776) PrismJS/prism@bac09f0a * Applied Array.isArray (PrismJS/prism#1804) PrismJS/prism@11d0f75e </details> --- review?(@jwhitlock)
This PR fixes #1530.