From c05170377239003e2745490bb743a3e4cc5aa146 Mon Sep 17 00:00:00 2001 From: Mangala SSS Khalsa Date: Thu, 10 Sep 2020 17:56:35 -0700 Subject: [PATCH 1/3] buildControl: set default languageOut for Closure to 'NO_TRANSPILE' The Google Closure Compiler has a default language output setting that may change by release. v20170806 changed the default output language to ECMASCRIPT5. This PR adds a default value of 'NO_TRANSPILE' if the build tool is configured to use the Google Closure Compiler. --- build/buildControl.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/buildControl.js b/build/buildControl.js index e622ed16..60cf3300 100644 --- a/build/buildControl.js +++ b/build/buildControl.js @@ -547,6 +547,11 @@ define([ bc.optimize = fixupOptimize(bc.optimize); bc.layerOptimize = fixupOptimize(bc.layerOptimize); + if(/closure/.test(bc.optimize) || /closure/.test(bc.layerOptimize)){ + bc.optimizeOptions = bc.optimizeOptions || {}; + bc.optimizeOptions.languageOut = bc.optimizeOptions.languageOut || 'NO_TRANSPILE'; + } + (function(){ var fixedScopeMap = {dojo:"dojo", dijit:"dijit", dojox:"dojox"}; (bc.scopeMap || []).forEach(function(pair){ From c1d16ba35feedce0f9c43ccf2ca22e7c314218b4 Mon Sep 17 00:00:00 2001 From: Mangala SSS Khalsa Date: Fri, 11 Sep 2020 15:13:06 -0700 Subject: [PATCH 2/3] Set default languageIn/languageOut to ECMASCRIPT3 to maintain previous behavior --- build/buildControl.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/buildControl.js b/build/buildControl.js index 60cf3300..9baed996 100644 --- a/build/buildControl.js +++ b/build/buildControl.js @@ -549,7 +549,8 @@ define([ if(/closure/.test(bc.optimize) || /closure/.test(bc.layerOptimize)){ bc.optimizeOptions = bc.optimizeOptions || {}; - bc.optimizeOptions.languageOut = bc.optimizeOptions.languageOut || 'NO_TRANSPILE'; + bc.optimizeOptions.languageIn = bc.optimizeOptions.languageIn || 'ECMASCRIPT3'; + bc.optimizeOptions.languageOut = bc.optimizeOptions.languageOut || 'ECMASCRIPT3'; } (function(){ From 86b4c5b6d778f8550004ef45d340f7b8664fa132 Mon Sep 17 00:00:00 2001 From: Mangala SSS Khalsa Date: Mon, 14 Sep 2020 11:33:03 -0700 Subject: [PATCH 3/3] built tool: set default languageIn to ES2017 --- build/buildControl.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/buildControl.js b/build/buildControl.js index 9baed996..f609add6 100644 --- a/build/buildControl.js +++ b/build/buildControl.js @@ -549,7 +549,10 @@ define([ if(/closure/.test(bc.optimize) || /closure/.test(bc.layerOptimize)){ bc.optimizeOptions = bc.optimizeOptions || {}; - bc.optimizeOptions.languageIn = bc.optimizeOptions.languageIn || 'ECMASCRIPT3'; + // ECMASCRIPT_2017 is necessary to avoid throwing errors on block-scoped functions + // https://github.com/google/closure-compiler/issues/3189 + bc.optimizeOptions.languageIn = bc.optimizeOptions.languageIn || 'ECMASCRIPT_2017'; + // ECMASCRIPT3 is necessary to preserve compatibility with older browsers/JS runtimes bc.optimizeOptions.languageOut = bc.optimizeOptions.languageOut || 'ECMASCRIPT3'; }