diff --git a/core/registry.js b/core/registry.js index dc74003c4..3076bfef6 100644 --- a/core/registry.js +++ b/core/registry.js @@ -40,7 +40,7 @@ const Theme = goog.requireType('Blockly.Theme'); /* eslint-disable-next-line no-unused-vars */ const ToolboxItem = goog.requireType('Blockly.ToolboxItem'); /* eslint-disable-next-line no-unused-vars */ -const ISerializer = goog.requireType('Blockly.serialization.ISerializer'); +const {ISerializer} = goog.requireType('Blockly.serialization.ISerializer'); /* eslint-disable-next-line no-unused-vars */ const {Cursor} = goog.requireType('Blockly.Cursor'); diff --git a/externs/goog-externs.js b/externs/goog-externs.js index 8b956d4b0..dcc80965a 100644 --- a/externs/goog-externs.js +++ b/externs/goog-externs.js @@ -5,7 +5,17 @@ */ /** - * @fileoverview Externs for goog. + * @fileoverview Externs for goog.* + * + * These are needed because we use goog.module, goog.require etc. to + * define our modules, but we don't actually include + * closure/goog/base.js as input to the compiler. Originally we only + * needed the extern for goog, but some time between Closure Compiler + * versions 20210601.0.0 and 20211006.0.0 we started getting + * JSC_POSSIBLE_INEXISTENT_PROPERTY errors for goog.module / + * goog.require / goog.requireType declarations involving modules + * which used goog.module.declareLegacyNamespace. + * * @externs */ @@ -13,3 +23,44 @@ * @type {!Object} */ var goog = {}; + +/** + * @param {string} name + * @return {void} + */ +goog.module = function(name) {}; + +/** + * @return{void} + */ +goog.module.declareLegacyNamespace = function() {}; + +/** + * @param {string} name + * @return {?} + */ +goog.module.get = function(name) {}; + +/** + * @param {string} name + * @return {void} + */ +goog.provide = function(name) {}; + +/** + * @param {string} namespace + * @return {?} + */ +goog.require = function(namespace) {}; + +/** + * @param {string} namespace + * @return {?} + */ +goog.requireType = function(namespace) {}; + +/** + * @param {string=} opt_message + * @return{void} + */ +goog.setTestOnly = function(opt_message) {}; diff --git a/package-lock.json b/package-lock.json index b38f6a595..e962a4950 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "clang-format": "^1.5.0", "concurrently": "^6.0.0", "eslint": "^7.28.0", - "google-closure-compiler": "^20210601.0.0", + "google-closure-compiler": "^20211006.0.0", "google-closure-deps": "^20210601.0.0", "gulp": "^4.0.2", "gulp-concat": "^2.6.1", @@ -6137,13 +6137,13 @@ } }, "node_modules/google-closure-compiler": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20210601.0.0.tgz", - "integrity": "sha512-lzzEoG2VTB7uUjnWnMyeZMU163w69HJpM27yh8Up9Ha5McHZeESjt3NRwU8cWMbCRdY06nFbRCDIVCRcadHCiw==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20211006.0.0.tgz", + "integrity": "sha512-WrzPLGtNMtgPubcvSur8JzzpuNn4feS7OMF74Hsm00G0qpdNvBVCIkMpnLr9SPZnl2vZ8UVqt83XVXMpQRTkUw==", "dev": true, "dependencies": { "chalk": "2.x", - "google-closure-compiler-java": "^20210601.0.0", + "google-closure-compiler-java": "^20211006.0.0", "minimist": "1.x", "vinyl": "2.x", "vinyl-sourcemaps-apply": "^0.2.0" @@ -6155,21 +6155,21 @@ "node": ">=10" }, "optionalDependencies": { - "google-closure-compiler-linux": "^20210601.0.0", - "google-closure-compiler-osx": "^20210601.0.0", - "google-closure-compiler-windows": "^20210601.0.0" + "google-closure-compiler-linux": "^20211006.0.0", + "google-closure-compiler-osx": "^20211006.0.0", + "google-closure-compiler-windows": "^20211006.0.0" } }, "node_modules/google-closure-compiler-java": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20210601.0.0.tgz", - "integrity": "sha512-bH6nIwOmp4qDWvlbXx5/DE3XA2aDGQoCpmRYZJGONY1Sy6Xfbq0ioXRHH9eBDP9hxhCJ5Sd/K89A0NZ8Nz9RJA==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20211006.0.0.tgz", + "integrity": "sha512-ggvk48GuP5Y8TD1I9dcJTu50+BQ2AfroAAsTV7nnbKdEPCZ/XJmGqy5qrJk0ImdAvONUHZETc5DMHHgFI5WjMg==", "dev": true }, "node_modules/google-closure-compiler-linux": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20210601.0.0.tgz", - "integrity": "sha512-rnEQt7zz/1P1SfPhJiHQpfCgMPrsVVyEgDs09h67xn6+LXa9L0RP+hrJDEHqSWwjDPz0BkfUUv6zkqZvp1h/lw==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20211006.0.0.tgz", + "integrity": "sha512-7FclqwRDHcx9zvoy1JCQB3DC84T0anyOsb5kNIZgIf/oaUCvq27ElJK1X7W6IenOcwYyvDDWeDb38YkWl15ANw==", "cpu": [ "x64", "x86" @@ -6181,9 +6181,9 @@ ] }, "node_modules/google-closure-compiler-osx": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20210601.0.0.tgz", - "integrity": "sha512-A5r4s/WthR2iLMM0mxsluw8EW2AcOomC5ri/H6FjzpMq0RVEnLTgaGYdXolUAfEzH/7XtJJT2+JkYk3HSLCtrg==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20211006.0.0.tgz", + "integrity": "sha512-b0FGLvYZuMbDoLcu5z1lw0nWigpT8G29acuh4Yz6zO4NFq1aCpyR1X+BPhC2KCxb2eaMWPx2xoxbsekhkU0VzQ==", "cpu": [ "x64", "x86", @@ -6196,9 +6196,9 @@ ] }, "node_modules/google-closure-compiler-windows": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20210601.0.0.tgz", - "integrity": "sha512-6r94bPShnB0XXh9+5/qXGDHJN2PQGhF9yJPcgBZj+FAZlQGzlYkT0pkyp+loZT3lG+YRbjD28Lgo7xMcY4xgkA==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20211006.0.0.tgz", + "integrity": "sha512-7P13hA42LWIm4o+speQC5Yhs3D+3q9nvuItOxLCzess1sPDeBKi5dQi3w+C2MBTDyVN0CTKL86iClyyOnrbuRQ==", "cpu": [ "x64" ], @@ -18337,45 +18337,45 @@ } }, "google-closure-compiler": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20210601.0.0.tgz", - "integrity": "sha512-lzzEoG2VTB7uUjnWnMyeZMU163w69HJpM27yh8Up9Ha5McHZeESjt3NRwU8cWMbCRdY06nFbRCDIVCRcadHCiw==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler/-/google-closure-compiler-20211006.0.0.tgz", + "integrity": "sha512-WrzPLGtNMtgPubcvSur8JzzpuNn4feS7OMF74Hsm00G0qpdNvBVCIkMpnLr9SPZnl2vZ8UVqt83XVXMpQRTkUw==", "dev": true, "requires": { "chalk": "2.x", - "google-closure-compiler-java": "^20210601.0.0", - "google-closure-compiler-linux": "^20210601.0.0", - "google-closure-compiler-osx": "^20210601.0.0", - "google-closure-compiler-windows": "^20210601.0.0", + "google-closure-compiler-java": "^20211006.0.0", + "google-closure-compiler-linux": "^20211006.0.0", + "google-closure-compiler-osx": "^20211006.0.0", + "google-closure-compiler-windows": "^20211006.0.0", "minimist": "1.x", "vinyl": "2.x", "vinyl-sourcemaps-apply": "^0.2.0" } }, "google-closure-compiler-java": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20210601.0.0.tgz", - "integrity": "sha512-bH6nIwOmp4qDWvlbXx5/DE3XA2aDGQoCpmRYZJGONY1Sy6Xfbq0ioXRHH9eBDP9hxhCJ5Sd/K89A0NZ8Nz9RJA==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-java/-/google-closure-compiler-java-20211006.0.0.tgz", + "integrity": "sha512-ggvk48GuP5Y8TD1I9dcJTu50+BQ2AfroAAsTV7nnbKdEPCZ/XJmGqy5qrJk0ImdAvONUHZETc5DMHHgFI5WjMg==", "dev": true }, "google-closure-compiler-linux": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20210601.0.0.tgz", - "integrity": "sha512-rnEQt7zz/1P1SfPhJiHQpfCgMPrsVVyEgDs09h67xn6+LXa9L0RP+hrJDEHqSWwjDPz0BkfUUv6zkqZvp1h/lw==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-linux/-/google-closure-compiler-linux-20211006.0.0.tgz", + "integrity": "sha512-7FclqwRDHcx9zvoy1JCQB3DC84T0anyOsb5kNIZgIf/oaUCvq27ElJK1X7W6IenOcwYyvDDWeDb38YkWl15ANw==", "dev": true, "optional": true }, "google-closure-compiler-osx": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20210601.0.0.tgz", - "integrity": "sha512-A5r4s/WthR2iLMM0mxsluw8EW2AcOomC5ri/H6FjzpMq0RVEnLTgaGYdXolUAfEzH/7XtJJT2+JkYk3HSLCtrg==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-osx/-/google-closure-compiler-osx-20211006.0.0.tgz", + "integrity": "sha512-b0FGLvYZuMbDoLcu5z1lw0nWigpT8G29acuh4Yz6zO4NFq1aCpyR1X+BPhC2KCxb2eaMWPx2xoxbsekhkU0VzQ==", "dev": true, "optional": true }, "google-closure-compiler-windows": { - "version": "20210601.0.0", - "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20210601.0.0.tgz", - "integrity": "sha512-6r94bPShnB0XXh9+5/qXGDHJN2PQGhF9yJPcgBZj+FAZlQGzlYkT0pkyp+loZT3lG+YRbjD28Lgo7xMcY4xgkA==", + "version": "20211006.0.0", + "resolved": "https://registry.npmjs.org/google-closure-compiler-windows/-/google-closure-compiler-windows-20211006.0.0.tgz", + "integrity": "sha512-7P13hA42LWIm4o+speQC5Yhs3D+3q9nvuItOxLCzess1sPDeBKi5dQi3w+C2MBTDyVN0CTKL86iClyyOnrbuRQ==", "dev": true, "optional": true }, diff --git a/package.json b/package.json index 4964db70b..8f31af7dd 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "clang-format": "^1.5.0", "concurrently": "^6.0.0", "eslint": "^7.28.0", - "google-closure-compiler": "^20210601.0.0", + "google-closure-compiler": "^20211006.0.0", "google-closure-deps": "^20210601.0.0", "gulp": "^4.0.2", "gulp-concat": "^2.6.1", diff --git a/scripts/gulpfiles/build_tasks.js b/scripts/gulpfiles/build_tasks.js index 7010db859..dfcd0af87 100644 --- a/scripts/gulpfiles/build_tasks.js +++ b/scripts/gulpfiles/build_tasks.js @@ -91,7 +91,6 @@ var JSCOMP_ERROR = [ // 'strictPrimitiveOperators', 'suspiciousCode', 'typeInvalidation', - 'undefinedNames', 'undefinedVars', 'underscore', 'unknownDefines',