This repository was archived by the owner on Apr 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 27.4k
refactor(jqLite): make HTML-parsing constructor more robust #6962
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Adds accessibility attributes to links and images. - Adds a note on using NVM for node.
Jasmine doesn't live at the replaced link anymore. It has a link to click through, but I figured it would be better to just go directly to the correct location. Closes angular#6591
The meta-data should be parsed from the name not the id.
If the first element in a template is a <thead> or a <tfoot>, then use the existing logic to handle table elements compilation. Closes angular#6289
The docs were relying on the grunt/util module for getting version info but this was unreliable and full of custom regexes. This is moved into a new version-info module that makes much better use of the semver library.
As highlighted by the new sterner dgeni.
`restictions` -> `restrictions` Closes angular#6604
A few typos fixed. Closes angular#6605
`preferrable` -> `preferable` Typo fixed Closes angular#6606
this is primarily to resolve peerdependency version mismatch issue
`consititute` -> `constitute` Typo fixed Closes angular#6607
It is a bit rough and ready but does a better job than nothing.
Typo 'hrml' Oops! Closes angular#6874
Makes xhr status text accessible is $http success/error callback. See www.w3.org/TR/XMLHttpRequest/#dom-xmlhttprequest-statustext Closes angular#2335 Closes angular#2665 Closes angular#6713
The doc mentions filters can be used in services and controllers but directives aren't mentioned. This could lead to confusion for beginners.
Minimal typo fix Closes angular#6803
Fix broken internal link in directive documentation. Closes angular#6802
The previous link throws a 404.
Using node_module/.bin/gulp will enable to gulp command to run both on Windows and Linux. In its current form, the default action of executing a Javascript file on Windows does not use node. Requires quotes around the command to correctly resolve path on Windows Closes angular#6346
Due to a known V8 memory leak[1] we need to perform extra cleanup to make it easier for GC to collect this scope object. The theory is that the V8 leaks are due to inline caches which are caches built on the fly to speed up property access for javascript objects. By cleaning the scope object and removing all properties, we clean up ICs as well and so no leaks occur. I was able to manually verify that this fixes the problem for the following example app: http://plnkr.co/edit/FrSw6SCEVODk02Ljo8se?p=preview Given the nature of the problem I'm not 100% sure that this will work around the V8 problem in scenarios common for Angular apps, but I guess it's better than nothing. [1] V8 bug: https://code.google.com/p/v8/issues/detail?id=2073 Closes angular#6794 Closes angular#6856
It is too easy to forget to check jscs for things like trailing whitespace before pushing commits, such as simple doc changes. This then breaks the build and is messy. Adding jscs to the test task gives people a slightly better chance of catching these before pushing.
If the type of a type-hint was not recognized, say a "Promise", then the background color was left as white. Given that the default foreground color is also white, this meant that such type-hints were invisible. Closes angular#6934
…ze leaks This reverts commit f552f25. The commit is causing regressions. Closes angular#6897
Previously, constant numbers with a unary minus sign were not treated as constants. This fix corrects this behaviour, and may provide a small performance boost for certain applications, due to constant watches being automatically unregistered after their first listener call. Closes angular#6932
Previously, the jqLite constructor was limited and would be unable to circumvent many of the HTML5 spec's "allowed content" policies for various nodes. This led to complicated and gross hacks around this in the HTML compiler. This change refactors these hacks by simplifying them, and placing them in jqLite rather than in $compile, in order to better support these things, and simplify code. While the new jqLite constructor is still not even close to as robust as jQuery, it should be more than suitable enough for the needs of the framework, while adding minimal code. Closes angular#6941 Closes angular#6926
Thanks for the PR! Please check the items below to help us merge this faster. See the contributing docs for more information.
If you need to make changes to your pull request, you can update the commit with Thanks again for your help! |
I royally made a mess with this, I need to stop being lazy and use cherry-pick instead of |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, the jqLite constructor was limited and would be unable to
circumvent many of the HTML5 spec's "allowed content" policies for various
nodes. This led to complicated and gross hacks around this in the HTML
compiler.
This change refactors these hacks by simplifying them, and placing them in
jqLite rather than in $compile, in order to better support these things, and simplify code.
While the new jqLite constructor is still not even close to as robust as
jQuery, it should be more than suitable enough for the needs of the
framework, while adding minimal code.
Closes #6941 Closes #6926