🏗 Refactor transform-log-asserts#24028
Merged
rsimha merged 1 commit intoampproject:masterfrom Aug 19, 2019
Merged
Conversation
The only big change here is now we'll try to statically analyze assertions.
- If we're asserting a type and we know that the argument is not of that type, we rewrite to a throw expression
- Else if we're assertiong truthiness and the argument is falsey, we rewrite to a throw expression
This is to better support stubbed out methods, eg, layers:
```js
class Resources {
layersStuff() {
devAssert(this.layersEnabled_);
// lots of code that can be DCE'd when layers is statically disabled
}
}
```
rsimha
reviewed
Aug 19, 2019
Contributor
rsimha
left a comment
There was a problem hiding this comment.
I tested this PR locally after removing AmpPass.java, and am still seeing the number of instances of assert in v0.js increase from 20 to 80. Happy to chat offline to make sure we're on the same page.
2e45987 to
cbde1a9
Compare
Contributor
Author
|
That's due to amphtml/build-system/build.conf.js Lines 138 to 140 in c5d6e5a |
rsimha
approved these changes
Aug 19, 2019
Contributor
There was a problem hiding this comment.
You're right. Removing if (isSinglePass) and deleting AmpPass.java brings down the number of asserts from 80 to 30. (You said the additional 10 are intentional.)
This PR LGTM based on the testing I did . Will allow @erwinmombay and @choumx review the transform code.
westonruter
added a commit
to westonruter/amphtml
that referenced
this pull request
Aug 20, 2019
* 'master' of github.com:ampproject/amphtml: (32 commits) ✨ Make tweet id a bindable attribute (ampproject#23953) 🏗 Update Local AMP extension to allow custom base URLs (ampproject#24029) 🏗 Improve serving from non-localhost host (ampproject#24066) Preventing half pixels. (ampproject#24050) Update callout-vendors.js (ampproject#23218) 🏗 Fixes to `check-package-manager.js` (ampproject#24060) Rename AMP_MODE to __AMP_MODE. (ampproject#24052) Story media performance metrics. (ampproject#23962) Updating Story amp-sidebar width documentation. (ampproject#23894) Fixes race condition in amp-video-iframe (ampproject#24033) Rename ampExtendedElements to __AMP_EXTENDED_ELEMENTS (ampproject#24056) 🏗🚮 Enable property inlining (ampproject#24053) ✨amp-ads: Added optional params for Directadvert network (ampproject#23724) <amp-experiment> style mutation fix and improvment (ampproject#23669) 🐛 Allow http protocol for noscript > img fallbacks for parity with amp-img (ampproject#21686) 🏗 Refactor transform-log-asserts (ampproject#24028) Automatically preconnect to source origins on page loads. (ampproject#24045) Support visibility API in the ampdoc (ampproject#23799) Amphtml visual tests should use relative path against root (ampproject#24042) FIX: check all fields' dirtiness on AMP form init (ampproject#23978) ...
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The only big change here is now we'll try to statically analyze assertions.
This is to better support stubbed out methods, eg, layers:
Fixes #23960.