diff --git a/blocks/lists.js b/blocks/lists.js index ced1e3203..8effd6a27 100644 --- a/blocks/lists.js +++ b/blocks/lists.js @@ -36,6 +36,7 @@ goog.require('Blockly'); goog.require('Blockly.Blocks'); goog.require('Blockly.FieldDropdown'); goog.require('Blockly.FieldLabel'); +goog.require('Blockly.Mutator'); /** diff --git a/blocks/logic.js b/blocks/logic.js index e36adb627..11ad00bda 100644 --- a/blocks/logic.js +++ b/blocks/logic.js @@ -36,6 +36,7 @@ goog.require('Blockly'); goog.require('Blockly.Blocks'); goog.require('Blockly.FieldDropdown'); goog.require('Blockly.FieldLabel'); +goog.require('Blockly.Mutator'); /** diff --git a/blocks/procedures.js b/blocks/procedures.js index 040636142..ca829a000 100644 --- a/blocks/procedures.js +++ b/blocks/procedures.js @@ -31,6 +31,7 @@ goog.require('Blockly.Blocks'); goog.require('Blockly.FieldCheckbox'); goog.require('Blockly.FieldLabel'); goog.require('Blockly.FieldTextInput'); +goog.require('Blockly.Mutator'); Blockly.Blocks['procedures_defnoreturn'] = { diff --git a/blocks/text.js b/blocks/text.js index 1dbc42f9f..8937b0e23 100644 --- a/blocks/text.js +++ b/blocks/text.js @@ -34,6 +34,7 @@ goog.require('Blockly.FieldImage'); goog.require('Blockly.FieldMultilineInput'); goog.require('Blockly.FieldTextInput'); goog.require('Blockly.FieldVariable'); +goog.require('Blockly.Mutator'); /** diff --git a/build.py b/build.py index c8a565f96..71ced9293 100755 --- a/build.py +++ b/build.py @@ -257,6 +257,7 @@ goog.provide('Blockly.FieldMultilineInput'); goog.provide('Blockly.FieldNumber'); goog.provide('Blockly.FieldTextInput'); goog.provide('Blockly.FieldVariable'); +goog.provide('Blockly.Mutator'); """)) # Read in all the source files. filenames = glob.glob(os.path.join("blocks", "*.js")) diff --git a/core/block.js b/core/block.js index 8fee8d4a9..7f6a915f4 100644 --- a/core/block.js +++ b/core/block.js @@ -36,7 +36,6 @@ goog.require('Blockly.Events.BlockDelete'); goog.require('Blockly.Events.BlockMove'); goog.require('Blockly.Extensions'); goog.require('Blockly.Input'); -goog.require('Blockly.Mutator'); goog.require('Blockly.utils'); goog.require('Blockly.utils.Coordinate'); goog.require('Blockly.utils.object'); diff --git a/core/extensions.js b/core/extensions.js index c15329559..938f7c684 100644 --- a/core/extensions.js +++ b/core/extensions.js @@ -33,7 +33,6 @@ */ goog.provide('Blockly.Extensions'); -goog.require('Blockly.Mutator'); goog.require('Blockly.utils'); @@ -115,6 +114,9 @@ Blockly.Extensions.registerMutator = function(name, mixinObj, opt_helperFn, // Sanity checks passed. Blockly.Extensions.register(name, function() { if (hasMutatorDialog) { + if (!Blockly.Mutator) { + throw Error(errorPrefix + 'Missing require for Blockly.Mutator'); + } this.setMutator(new Blockly.Mutator(opt_blockList)); } // Mixin the object. diff --git a/core/requires.js b/core/requires.js index ed8849df5..b8acc0c4c 100644 --- a/core/requires.js +++ b/core/requires.js @@ -29,6 +29,7 @@ goog.provide('Blockly.requires'); // Blockly Core. goog.require('Blockly'); +goog.require('Blockly.Mutator'); goog.require('Blockly.Trashcan'); goog.require('Blockly.ZoomControls'); // Blockly Fields. diff --git a/gulpfile.js b/gulpfile.js index 2723b9bfc..8ee20a372 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -85,7 +85,7 @@ function prependHeader() { /** * Helper method for calling the Closure compiler. - * @param {*} compilerOptions + * @param {*} compilerOptions * @param {boolean=} opt_verbose Optional option for verbose logging */ function compile(compilerOptions, opt_verbose) { @@ -149,7 +149,8 @@ goog.provide('Blockly.FieldLabel'); goog.provide('Blockly.FieldMultilineInput'); goog.provide('Blockly.FieldNumber'); goog.provide('Blockly.FieldTextInput'); -goog.provide('Blockly.FieldVariable');`; +goog.provide('Blockly.FieldVariable'); +goog.provide('Blockly.Mutator');`; return gulp.src('blocks/*.js', {base: './'}) // Add Blockly.Blocks to be compatible with the compiler. .pipe(gulp.replace(`goog.provide('Blockly.Constants.Colour');`, @@ -700,7 +701,7 @@ gulp.task('package-node-core', function() { * A helper method for packaging a Blockly code generator into a UMD module. * @param {string} file Source file name. * @param {string} rename Destination file name. - * @param {string} generator Generator export namespace. + * @param {string} generator Generator export namespace. */ function packageGenerator(file, rename, generator) { return gulp.src(file)