diff --git a/build-system/runner/dist/runner.jar b/build-system/runner/dist/runner.jar index 4660f260596f..b241a974f05a 100644 Binary files a/build-system/runner/dist/runner.jar and b/build-system/runner/dist/runner.jar differ diff --git a/build-system/runner/src/org/ampproject/AmpCommandLineRunner.java b/build-system/runner/src/org/ampproject/AmpCommandLineRunner.java index 7837a246b653..41fd8cd6b9db 100644 --- a/build-system/runner/src/org/ampproject/AmpCommandLineRunner.java +++ b/build-system/runner/src/org/ampproject/AmpCommandLineRunner.java @@ -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 suffixTypes = ImmutableSet.of( "dev.fine"); @@ -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; diff --git a/package.json b/package.json index af756c423a90..f6c584ad5d52 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/src/polyfills/promise.js b/src/polyfills/promise.js index c93f7002dd22..27a5db24b443 100644 --- a/src/polyfills/promise.js +++ b/src/polyfills/promise.js @@ -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. @@ -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; } } diff --git a/test/size.txt b/test/size.txt index 6b4dce53b6a5..77bee6224bd4 100644 --- a/test/size.txt +++ b/test/size.txt @@ -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 \ No newline at end of file +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 \ No newline at end of file