Skip to content

Commit

Permalink
Turn on closure compiler collapse properties.
Browse files Browse the repository at this point in the history
Boom.

The only apparent problem was related to handling of the default export from PJs, which needed both some local changes and a version bump for PJS.
  • Loading branch information
cramforce committed Apr 23, 2016
1 parent 1a82bee commit fe5e298
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 39 deletions.
Binary file modified build-system/runner/dist/runner.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
public class AmpCommandLineRunner extends CommandLineRunner {

/**
* List of string suffixes to eliminate from the AST.
* List of string suffixes to eliminate from the AST.
*/
ImmutableSet<String> suffixTypes = ImmutableSet.of(
"dev.fine");
Expand All @@ -24,6 +24,7 @@ protected AmpCommandLineRunner(String[] args) {

@Override protected CompilerOptions createOptions() {
CompilerOptions options = super.createOptions();
options.setCollapseProperties(true);
AmpPass ampPass = new AmpPass(getCompiler(), suffixTypes);
options.addCustomPass(CustomPassExecutionTime.BEFORE_OPTIMIZATIONS, ampPass);
return options;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"heroku-postbuild": "gulp clean && gulp build --fortesting && gulp dist --fortesting"
},
"dependencies": {
"promise-pjs": "0.2.6",
"promise-pjs": "1.0.0",
"document-register-element": "0.5.4"
},
"devDependencies": {
Expand Down
13 changes: 12 additions & 1 deletion src/polyfills/promise.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/


import {Promise} from 'promise-pjs/promise';
import * as Promise from 'promise-pjs/promise';

/**
* Sets the Promise polyfill if it does not exist.
Expand All @@ -24,5 +24,16 @@ import {Promise} from 'promise-pjs/promise';
export function install(win) {
if (!win.Promise) {
win.Promise = Promise;
// In babel the * export is an Object with a default property.
// In closure compiler it is the Promise function itself.
if (Promise.default) {
win.Promise = Promise.default;
}
// We copy the individual static methods, because closure
// compiler flattens the polyfill namespace.
win.Promise.resolve = Promise.resolve;
win.Promise.reject = Promise.reject;
win.Promise.all = Promise.all;
win.Promise.race = Promise.race;
}
}
72 changes: 36 additions & 36 deletions test/size.txt
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
max | min | gzip | file
--- | --- | --- | ---
614.24 kB | 173.35 kB | 47.8 kB | v0.js / amp.js
354.36 kB | 86.94 kB | 25.69 kB | v0/amp-access-0.1.js
27.07 kB | 9.35 kB | 3.63 kB | v0/amp-accordion-0.1.js
382.54 kB | 104.41 kB | 32.81 kB | v0/amp-analytics-0.1.js
87.25 kB | 14.26 kB | 5.31 kB | v0/amp-anim-0.1.js
84.09 kB | 13.66 kB | 5.18 kB | v0/amp-audio-0.1.js
78.94 kB | 12.77 kB | 4.7 kB | v0/amp-brid-player-0.1.js
94.63 kB | 16.66 kB | 6.08 kB | v0/amp-brightcove-0.1.js
191.09 kB | 38.88 kB | 11.36 kB | v0/amp-carousel-0.1.js
71.52 kB | 10.68 kB | 4.13 kB | v0/amp-dailymotion-0.1.js
81.85 kB | 10.84 kB | 4.16 kB | v0/amp-dynamic-css-classes-0.1.js
132.09 kB | 24.34 kB | 8.71 kB | v0/amp-facebook-0.1.js
34.58 kB | 10.76 kB | 4.07 kB | v0/amp-fit-text-0.1.js
88.51 kB | 14.11 kB | 4.93 kB | v0/amp-font-0.1.js
123.68 kB | 23.33 kB | 8.19 kB | v0/amp-iframe-0.1.js
216.98 kB | 48.58 kB | 13.8 kB | v0/amp-image-lightbox-0.1.js
87.44 kB | 14.32 kB | 5.23 kB | v0/amp-instagram-0.1.js
81.11 kB | 12.78 kB | 4.78 kB | v0/amp-install-serviceworker-0.1.js
78.37 kB | 12.2 kB | 4.58 kB | v0/amp-jwplayer-0.1.js
92.36 kB | 16.26 kB | 6.04 kB | v0/amp-kaltura-player-0.1.js
136.78 kB | 21.81 kB | 6.91 kB | v0/amp-lightbox-0.1.js
278.35 kB | 62.36 kB | 18.38 kB | v0/amp-list-0.1.js
143.99 kB | 44.74 kB | 15.55 kB | v0/amp-mustache-0.1.js
120.43 kB | 30.89 kB | 9.5 kB | v0/amp-pinterest-0.1.js
70.64 kB | 10.24 kB | 3.95 kB | v0/amp-reach-player-0.1.js
95.3 kB | 17.16 kB | 6.1 kB | v0/amp-sidebar-0.1.js
105.86 kB | 17.94 kB | 6.32 kB | v0/amp-slides-0.1.js
114.12 kB | 25.01 kB | 8.88 kB | v0/amp-social-share-0.1.js
71.21 kB | 10.43 kB | 4.03 kB | v0/amp-soundcloud-0.1.js
79.18 kB | 12.93 kB | 4.67 kB | v0/amp-springboard-player-0.1.js
132.56 kB | 24.46 kB | 8.75 kB | v0/amp-twitter-0.1.js
280.28 kB | 63.14 kB | 18.56 kB | v0/amp-user-notification-0.1.js
71.14 kB | 10.34 kB | 3.99 kB | v0/amp-vimeo-0.1.js
70.67 kB | 10.21 kB | 3.95 kB | v0/amp-vine-0.1.js
81.63 kB | 13.23 kB | 4.91 kB | v0/amp-youtube-0.1.js
135.66 kB | 36.85 kB | 12.34 kB | current-min/f.js / current/integration.js
614.81 kB | 157.73 kB | 43.68 kB | v0.js / amp.js
355.06 kB | 49.26 kB | 15.31 kB | v0/amp-access-0.1.js
27.06 kB | 5.96 kB | 2.35 kB | v0/amp-accordion-0.1.js
383.11 kB | 65.79 kB | 21.79 kB | v0/amp-analytics-0.1.js
87.72 kB | 9.49 kB | 3.62 kB | v0/amp-anim-0.1.js
84.56 kB | 7.22 kB | 2.92 kB | v0/amp-audio-0.1.js
79.41 kB | 8.33 kB | 3.16 kB | v0/amp-brid-player-0.1.js
95.11 kB | 7.98 kB | 3.05 kB | v0/amp-brightcove-0.1.js
191.56 kB | 33.17 kB | 9.53 kB | v0/amp-carousel-0.1.js
72 kB | 6.96 kB | 2.78 kB | v0/amp-dailymotion-0.1.js
82.32 kB | 5.28 kB | 2.27 kB | v0/amp-dynamic-css-classes-0.1.js
132.66 kB | 14.45 kB | 5.7 kB | v0/amp-facebook-0.1.js
34.57 kB | 6.72 kB | 2.64 kB | v0/amp-fit-text-0.1.js
88.98 kB | 9.66 kB | 3.5 kB | v0/amp-font-0.1.js
124.25 kB | 14.6 kB | 5.28 kB | v0/amp-iframe-0.1.js
217.45 kB | 40.04 kB | 11.23 kB | v0/amp-image-lightbox-0.1.js
87.92 kB | 8.12 kB | 3.14 kB | v0/amp-instagram-0.1.js
81.58 kB | 8.63 kB | 3.49 kB | v0/amp-install-serviceworker-0.1.js
78.84 kB | 7.79 kB | 3.03 kB | v0/amp-jwplayer-0.1.js
92.83 kB | 8.66 kB | 3.37 kB | v0/amp-kaltura-player-0.1.js
137.25 kB | 15.35 kB | 4.83 kB | v0/amp-lightbox-0.1.js
278.92 kB | 24.92 kB | 8.05 kB | v0/amp-list-0.1.js
143.99 kB | 40.5 kB | 14.27 kB | v0/amp-mustache-0.1.js
120.91 kB | 24.95 kB | 7.6 kB | v0/amp-pinterest-0.1.js
71.11 kB | 6.52 kB | 2.61 kB | v0/amp-reach-player-0.1.js
95.78 kB | 11.6 kB | 4.16 kB | v0/amp-sidebar-0.1.js
106.34 kB | 12.75 kB | 4.54 kB | v0/amp-slides-0.1.js
114.6 kB | 16.11 kB | 5.82 kB | v0/amp-social-share-0.1.js
71.69 kB | 6.67 kB | 2.66 kB | v0/amp-soundcloud-0.1.js
79.66 kB | 8.51 kB | 3.14 kB | v0/amp-springboard-player-0.1.js
133.13 kB | 14.57 kB | 5.74 kB | v0/amp-twitter-0.1.js
280.85 kB | 26 kB | 8.31 kB | v0/amp-user-notification-0.1.js
71.61 kB | 6.62 kB | 2.65 kB | v0/amp-vimeo-0.1.js
71.15 kB | 6.49 kB | 2.61 kB | v0/amp-vine-0.1.js
82.11 kB | 8.8 kB | 3.38 kB | v0/amp-youtube-0.1.js
135.65 kB | 30.41 kB | 10.75 kB | current-min/f.js / current/integration.js

0 comments on commit fe5e298

Please sign in to comment.