chore: fix missing requires in generators (#5744)

* chore: fix some missing requires in generators

* chore: fix missing requires in dart block generators

* chore: replace Blockly.isNumber with Blockly.utils.string.isNumber in generators

* chore: fix more missing requires in block generators
This commit is contained in:
Rachel Fenichel
2021-11-30 08:51:21 -08:00
committed by GitHub
parent 1a992386ae
commit 4db047ff32
18 changed files with 238 additions and 210 deletions

View File

@@ -13,9 +13,12 @@
goog.provide('Blockly.Dart'); goog.provide('Blockly.Dart');
goog.require('Blockly.Generator'); goog.require('Blockly.Generator');
goog.require('Blockly.Names');
goog.require('Blockly.Variables');
goog.require('Blockly.inputTypes'); goog.require('Blockly.inputTypes');
goog.require('Blockly.utils.string'); goog.require('Blockly.utils.string');
goog.requireType('Blockly.Block');
goog.requireType('Blockly.Workspace');
/** /**
* Dart code generator. * Dart code generator.
@@ -268,7 +271,7 @@ Blockly.Dart.getAdjusted = function(block, atId, opt_delta, opt_negate,
/** @type {string|number} */ /** @type {string|number} */
let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex; let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex;
if (Blockly.isNumber(at)) { if (Blockly.utils.string.isNumber(at)) {
// If the index is a naked number, adjust it right now. // If the index is a naked number, adjust it right now.
at = parseInt(at, 10) + delta; at = parseInt(at, 10) + delta;
if (opt_negate) { if (opt_negate) {

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Dart.loops'); goog.provide('Blockly.Dart.loops');
goog.require('Blockly.Dart'); goog.require('Blockly.Dart');
goog.require('Blockly.utils.string');
Blockly.Dart['controls_repeat_ext'] = function(block) { Blockly.Dart['controls_repeat_ext'] = function(block) {
@@ -32,7 +33,7 @@ Blockly.Dart['controls_repeat_ext'] = function(block) {
const loopVar = Blockly.Dart.nameDB_.getDistinctName( const loopVar = Blockly.Dart.nameDB_.getDistinctName(
'count', Blockly.VARIABLE_CATEGORY_NAME); 'count', Blockly.VARIABLE_CATEGORY_NAME);
let endVar = repeats; let endVar = repeats;
if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { if (!repeats.match(/^\w+$/) && !Blockly.utils.string.isNumber(repeats)) {
endVar = Blockly.Dart.nameDB_.getDistinctName( endVar = Blockly.Dart.nameDB_.getDistinctName(
'repeat_end', Blockly.VARIABLE_CATEGORY_NAME); 'repeat_end', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + endVar + ' = ' + repeats + ';\n'; code += 'var ' + endVar + ' = ' + repeats + ';\n';
@@ -73,8 +74,8 @@ Blockly.Dart['controls_for'] = function(block) {
let branch = Blockly.Dart.statementToCode(block, 'DO'); let branch = Blockly.Dart.statementToCode(block, 'DO');
branch = Blockly.Dart.addLoopTrap(branch, block); branch = Blockly.Dart.addLoopTrap(branch, block);
let code; let code;
if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && if (Blockly.utils.string.isNumber(argument0) && Blockly.utils.string.isNumber(argument1) &&
Blockly.isNumber(increment)) { Blockly.utils.string.isNumber(increment)) {
// All arguments are simple numbers. // All arguments are simple numbers.
const up = Number(argument0) <= Number(argument1); const up = Number(argument0) <= Number(argument1);
code = 'for (' + variable0 + ' = ' + argument0 + '; ' + code = 'for (' + variable0 + ' = ' + argument0 + '; ' +
@@ -91,13 +92,13 @@ Blockly.Dart['controls_for'] = function(block) {
code = ''; code = '';
// Cache non-trivial values to variables to prevent repeated look-ups. // Cache non-trivial values to variables to prevent repeated look-ups.
let startVar = argument0; let startVar = argument0;
if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { if (!argument0.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument0)) {
startVar = Blockly.Dart.nameDB_.getDistinctName( startVar = Blockly.Dart.nameDB_.getDistinctName(
variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + startVar + ' = ' + argument0 + ';\n'; code += 'var ' + startVar + ' = ' + argument0 + ';\n';
} }
let endVar = argument1; let endVar = argument1;
if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { if (!argument1.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument1)) {
endVar = Blockly.Dart.nameDB_.getDistinctName( endVar = Blockly.Dart.nameDB_.getDistinctName(
variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + endVar + ' = ' + argument1 + ';\n'; code += 'var ' + endVar + ' = ' + argument1 + ';\n';
@@ -107,7 +108,7 @@ Blockly.Dart['controls_for'] = function(block) {
const incVar = Blockly.Dart.nameDB_.getDistinctName( const incVar = Blockly.Dart.nameDB_.getDistinctName(
variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME);
code += 'num ' + incVar + ' = '; code += 'num ' + incVar + ' = ';
if (Blockly.isNumber(increment)) { if (Blockly.utils.string.isNumber(increment)) {
code += Math.abs(increment) + ';\n'; code += Math.abs(increment) + ';\n';
} else { } else {
code += '(' + increment + ').abs();\n'; code += '(' + increment + ').abs();\n';

View File

@@ -6,7 +6,7 @@
/** /**
* @fileoverview Generating Dart for dynamic variable blocks. * @fileoverview Generating Dart for dynamic variable blocks.
* @suppress {extraRequire|missingRequire} * @suppress {extraRequire}
*/ */
'use strict'; 'use strict';

View File

@@ -13,10 +13,14 @@
goog.provide('Blockly.JavaScript'); goog.provide('Blockly.JavaScript');
goog.require('Blockly.Generator'); goog.require('Blockly.Generator');
goog.require('Blockly.Variables');
goog.require('Blockly.Names');
goog.require('Blockly.inputTypes'); goog.require('Blockly.inputTypes');
goog.require('Blockly.utils.global'); goog.require('Blockly.utils.global');
goog.require('Blockly.utils.object'); goog.require('Blockly.utils.object');
goog.require('Blockly.utils.string'); goog.require('Blockly.utils.string');
goog.requireType('Blockly.Block');
goog.requireType('Blockly.Workspace');
/** /**
@@ -289,7 +293,7 @@ Blockly.JavaScript.getAdjusted = function(block, atId, opt_delta, opt_negate,
let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex; let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex;
if (Blockly.isNumber(at)) { if (Blockly.utils.string.isNumber(at)) {
// If the index is a naked number, adjust it right now. // If the index is a naked number, adjust it right now.
at = Number(at) + delta; at = Number(at) + delta;
if (opt_negate) { if (opt_negate) {

View File

@@ -14,6 +14,7 @@ goog.provide('Blockly.JavaScript.loops');
goog.require('Blockly.JavaScript'); goog.require('Blockly.JavaScript');
goog.require('Blockly.loopMixin'); goog.require('Blockly.loopMixin');
goog.require('Blockly.utils.string');
Blockly.JavaScript['controls_repeat_ext'] = function(block) { Blockly.JavaScript['controls_repeat_ext'] = function(block) {
@@ -33,7 +34,7 @@ Blockly.JavaScript['controls_repeat_ext'] = function(block) {
const loopVar = Blockly.JavaScript.nameDB_.getDistinctName( const loopVar = Blockly.JavaScript.nameDB_.getDistinctName(
'count', Blockly.VARIABLE_CATEGORY_NAME); 'count', Blockly.VARIABLE_CATEGORY_NAME);
let endVar = repeats; let endVar = repeats;
if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { if (!repeats.match(/^\w+$/) && !Blockly.utils.string.isNumber(repeats)) {
endVar = Blockly.JavaScript.nameDB_.getDistinctName( endVar = Blockly.JavaScript.nameDB_.getDistinctName(
'repeat_end', Blockly.VARIABLE_CATEGORY_NAME); 'repeat_end', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + endVar + ' = ' + repeats + ';\n'; code += 'var ' + endVar + ' = ' + repeats + ';\n';
@@ -75,8 +76,8 @@ Blockly.JavaScript['controls_for'] = function(block) {
let branch = Blockly.JavaScript.statementToCode(block, 'DO'); let branch = Blockly.JavaScript.statementToCode(block, 'DO');
branch = Blockly.JavaScript.addLoopTrap(branch, block); branch = Blockly.JavaScript.addLoopTrap(branch, block);
let code; let code;
if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && if (Blockly.utils.string.isNumber(argument0) && Blockly.utils.string.isNumber(argument1) &&
Blockly.isNumber(increment)) { Blockly.utils.string.isNumber(increment)) {
// All arguments are simple numbers. // All arguments are simple numbers.
const up = Number(argument0) <= Number(argument1); const up = Number(argument0) <= Number(argument1);
code = 'for (' + variable0 + ' = ' + argument0 + '; ' + code = 'for (' + variable0 + ' = ' + argument0 + '; ' +
@@ -93,13 +94,13 @@ Blockly.JavaScript['controls_for'] = function(block) {
code = ''; code = '';
// Cache non-trivial values to variables to prevent repeated look-ups. // Cache non-trivial values to variables to prevent repeated look-ups.
let startVar = argument0; let startVar = argument0;
if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { if (!argument0.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument0)) {
startVar = Blockly.JavaScript.nameDB_.getDistinctName( startVar = Blockly.JavaScript.nameDB_.getDistinctName(
variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + startVar + ' = ' + argument0 + ';\n'; code += 'var ' + startVar + ' = ' + argument0 + ';\n';
} }
let endVar = argument1; let endVar = argument1;
if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { if (!argument1.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument1)) {
endVar = Blockly.JavaScript.nameDB_.getDistinctName( endVar = Blockly.JavaScript.nameDB_.getDistinctName(
variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + endVar + ' = ' + argument1 + ';\n'; code += 'var ' + endVar + ' = ' + argument1 + ';\n';
@@ -109,7 +110,7 @@ Blockly.JavaScript['controls_for'] = function(block) {
const incVar = Blockly.JavaScript.nameDB_.getDistinctName( const incVar = Blockly.JavaScript.nameDB_.getDistinctName(
variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME);
code += 'var ' + incVar + ' = '; code += 'var ' + incVar + ' = ';
if (Blockly.isNumber(increment)) { if (Blockly.utils.string.isNumber(increment)) {
code += Math.abs(increment) + ';\n'; code += Math.abs(increment) + ';\n';
} else { } else {
code += 'Math.abs(' + increment + ');\n'; code += 'Math.abs(' + increment + ');\n';

View File

@@ -7,16 +7,19 @@
/** /**
* @fileoverview Helper functions for generating Lua for blocks. * @fileoverview Helper functions for generating Lua for blocks.
* Based on Ellen Spertus's blocky-lua project. * Based on Ellen Spertus's blocky-lua project.
* @suppress {missingRequire|checkTypes|globalThis} * @suppress {checkTypes|globalThis}
*/ */
'use strict'; 'use strict';
goog.provide('Blockly.Lua'); goog.provide('Blockly.Lua');
goog.require('Blockly.Generator'); goog.require('Blockly.Generator');
goog.require('Blockly.Names');
goog.require('Blockly.inputTypes'); goog.require('Blockly.inputTypes');
goog.require('Blockly.utils.object'); goog.require('Blockly.utils.object');
goog.require('Blockly.utils.string'); goog.require('Blockly.utils.string');
goog.requireType('Blockly.Block');
goog.requireType('Blockly.Workspace');
/** /**

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Lua.loops'); goog.provide('Blockly.Lua.loops');
goog.require('Blockly.Lua'); goog.require('Blockly.Lua');
goog.require('Blockly.utils.string');
/** /**
@@ -53,7 +54,7 @@ Blockly.Lua['controls_repeat_ext'] = function(block) {
repeats = Blockly.Lua.valueToCode(block, 'TIMES', repeats = Blockly.Lua.valueToCode(block, 'TIMES',
Blockly.Lua.ORDER_NONE) || '0'; Blockly.Lua.ORDER_NONE) || '0';
} }
if (Blockly.isNumber(repeats)) { if (Blockly.utils.string.isNumber(repeats)) {
repeats = parseInt(repeats, 10); repeats = parseInt(repeats, 10);
} else { } else {
repeats = 'math.floor(' + repeats + ')'; repeats = 'math.floor(' + repeats + ')';
@@ -100,8 +101,8 @@ Blockly.Lua['controls_for'] = function(block) {
branch = Blockly.Lua.addContinueLabel_(branch); branch = Blockly.Lua.addContinueLabel_(branch);
let code = ''; let code = '';
let incValue; let incValue;
if (Blockly.isNumber(startVar) && Blockly.isNumber(endVar) && if (Blockly.utils.string.isNumber(startVar) && Blockly.utils.string.isNumber(endVar) &&
Blockly.isNumber(increment)) { Blockly.utils.string.isNumber(increment)) {
// All arguments are simple numbers. // All arguments are simple numbers.
const up = Number(startVar) <= Number(endVar); const up = Number(startVar) <= Number(endVar);
const step = Math.abs(Number(increment)); const step = Math.abs(Number(increment));
@@ -113,7 +114,7 @@ Blockly.Lua['controls_for'] = function(block) {
incValue = Blockly.Lua.nameDB_.getDistinctName( incValue = Blockly.Lua.nameDB_.getDistinctName(
variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME);
code += incValue + ' = '; code += incValue + ' = ';
if (Blockly.isNumber(increment)) { if (Blockly.utils.string.isNumber(increment)) {
code += Math.abs(increment) + '\n'; code += Math.abs(increment) + '\n';
} else { } else {
code += 'math.abs(' + increment + ')\n'; code += 'math.abs(' + increment + ')\n';

View File

@@ -6,16 +6,19 @@
/** /**
* @fileoverview Helper functions for generating PHP for blocks. * @fileoverview Helper functions for generating PHP for blocks.
* @suppress {missingRequire|checkTypes|globalThis} * @suppress {checkTypes|globalThis}
*/ */
'use strict'; 'use strict';
goog.provide('Blockly.PHP'); goog.provide('Blockly.PHP');
goog.require('Blockly.Generator'); goog.require('Blockly.Generator');
goog.require('Blockly.Names');
goog.require('Blockly.inputTypes'); goog.require('Blockly.inputTypes');
goog.require('Blockly.utils.object'); goog.require('Blockly.utils.object');
goog.require('Blockly.utils.string'); goog.require('Blockly.utils.string');
goog.requireType('Blockly.Block');
goog.requireType('Blockly.Workspace');
/** /**
@@ -271,7 +274,7 @@ Blockly.PHP.getAdjusted = function(block, atId, opt_delta, opt_negate,
} }
let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex; let at = this.valueToCode(block, atId, outerOrder) || defaultAtIndex;
if (Blockly.isNumber(at)) { if (Blockly.utils.string.isNumber(at)) {
// If the index is a naked number, adjust it right now. // If the index is a naked number, adjust it right now.
at = Number(at) + delta; at = Number(at) + delta;
if (opt_negate) { if (opt_negate) {

View File

@@ -24,6 +24,7 @@
goog.provide('Blockly.PHP.lists'); goog.provide('Blockly.PHP.lists');
goog.require('Blockly.PHP'); goog.require('Blockly.PHP');
goog.require('Blockly.utils.string');
Blockly.PHP['lists_create_empty'] = function(block) { Blockly.PHP['lists_create_empty'] = function(block) {
@@ -387,7 +388,7 @@ Blockly.PHP['lists_getSublist'] = function(block) {
at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false, at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false,
Blockly.PHP.ORDER_SUBTRACTION); Blockly.PHP.ORDER_SUBTRACTION);
length = at2 + ' - '; length = at2 + ' - ';
if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { if (Blockly.utils.string.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) {
length += at1; length += at1;
} else { } else {
length += '(' + at1 + ')'; length += '(' + at1 + ')';
@@ -398,7 +399,7 @@ Blockly.PHP['lists_getSublist'] = function(block) {
at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false, at2 = Blockly.PHP.getAdjusted(block, 'AT2', 0, false,
Blockly.PHP.ORDER_SUBTRACTION); Blockly.PHP.ORDER_SUBTRACTION);
length = 'count(' + list + ') - ' + at2 + ' - '; length = 'count(' + list + ') - ' + at2 + ' - ';
if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { if (Blockly.utils.string.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) {
length += at1; length += at1;
} else { } else {
length += '(' + at1 + ')'; length += '(' + at1 + ')';
@@ -406,7 +407,7 @@ Blockly.PHP['lists_getSublist'] = function(block) {
break; break;
case 'LAST': case 'LAST':
length = 'count(' + list + ') - '; length = 'count(' + list + ') - ';
if (Blockly.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) { if (Blockly.utils.string.isNumber(String(at1)) || String(at1).match(/^\(.+\)$/)) {
length += at1; length += at1;
} else { } else {
length += '(' + at1 + ')'; length += '(' + at1 + ')';

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.PHP.loops'); goog.provide('Blockly.PHP.loops');
goog.require('Blockly.PHP'); goog.require('Blockly.PHP');
goog.require('Blockly.utils.string');
Blockly.PHP['controls_repeat_ext'] = function(block) { Blockly.PHP['controls_repeat_ext'] = function(block) {
@@ -32,7 +33,7 @@ Blockly.PHP['controls_repeat_ext'] = function(block) {
const loopVar = Blockly.PHP.nameDB_.getDistinctName( const loopVar = Blockly.PHP.nameDB_.getDistinctName(
'count', Blockly.VARIABLE_CATEGORY_NAME); 'count', Blockly.VARIABLE_CATEGORY_NAME);
let endVar = repeats; let endVar = repeats;
if (!repeats.match(/^\w+$/) && !Blockly.isNumber(repeats)) { if (!repeats.match(/^\w+$/) && !Blockly.utils.string.isNumber(repeats)) {
endVar = Blockly.PHP.nameDB_.getDistinctName( endVar = Blockly.PHP.nameDB_.getDistinctName(
'repeat_end', Blockly.VARIABLE_CATEGORY_NAME); 'repeat_end', Blockly.VARIABLE_CATEGORY_NAME);
code += endVar + ' = ' + repeats + ';\n'; code += endVar + ' = ' + repeats + ';\n';
@@ -73,8 +74,8 @@ Blockly.PHP['controls_for'] = function(block) {
let branch = Blockly.PHP.statementToCode(block, 'DO'); let branch = Blockly.PHP.statementToCode(block, 'DO');
branch = Blockly.PHP.addLoopTrap(branch, block); branch = Blockly.PHP.addLoopTrap(branch, block);
let code; let code;
if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && if (Blockly.utils.string.isNumber(argument0) && Blockly.utils.string.isNumber(argument1) &&
Blockly.isNumber(increment)) { Blockly.utils.string.isNumber(increment)) {
// All arguments are simple numbers. // All arguments are simple numbers.
const up = Number(argument0) <= Number(argument1); const up = Number(argument0) <= Number(argument1);
code = 'for (' + variable0 + ' = ' + argument0 + '; ' + code = 'for (' + variable0 + ' = ' + argument0 + '; ' +
@@ -91,13 +92,13 @@ Blockly.PHP['controls_for'] = function(block) {
code = ''; code = '';
// Cache non-trivial values to variables to prevent repeated look-ups. // Cache non-trivial values to variables to prevent repeated look-ups.
let startVar = argument0; let startVar = argument0;
if (!argument0.match(/^\w+$/) && !Blockly.isNumber(argument0)) { if (!argument0.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument0)) {
startVar = Blockly.PHP.nameDB_.getDistinctName( startVar = Blockly.PHP.nameDB_.getDistinctName(
variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_start', Blockly.VARIABLE_CATEGORY_NAME);
code += startVar + ' = ' + argument0 + ';\n'; code += startVar + ' = ' + argument0 + ';\n';
} }
let endVar = argument1; let endVar = argument1;
if (!argument1.match(/^\w+$/) && !Blockly.isNumber(argument1)) { if (!argument1.match(/^\w+$/) && !Blockly.utils.string.isNumber(argument1)) {
endVar = Blockly.PHP.nameDB_.getDistinctName( endVar = Blockly.PHP.nameDB_.getDistinctName(
variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_end', Blockly.VARIABLE_CATEGORY_NAME);
code += endVar + ' = ' + argument1 + ';\n'; code += endVar + ' = ' + argument1 + ';\n';
@@ -107,7 +108,7 @@ Blockly.PHP['controls_for'] = function(block) {
const incVar = Blockly.PHP.nameDB_.getDistinctName( const incVar = Blockly.PHP.nameDB_.getDistinctName(
variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME); variable0 + '_inc', Blockly.VARIABLE_CATEGORY_NAME);
code += incVar + ' = '; code += incVar + ' = ';
if (Blockly.isNumber(increment)) { if (Blockly.utils.string.isNumber(increment)) {
code += Math.abs(increment) + ';\n'; code += Math.abs(increment) + ';\n';
} else { } else {
code += 'abs(' + increment + ');\n'; code += 'abs(' + increment + ');\n';

View File

@@ -13,6 +13,8 @@
goog.provide('Blockly.PHP.procedures'); goog.provide('Blockly.PHP.procedures');
goog.require('Blockly.PHP'); goog.require('Blockly.PHP');
goog.require('Blockly.Names');
goog.require('Blockly.Variables');
Blockly.PHP['procedures_defreturn'] = function(block) { Blockly.PHP['procedures_defreturn'] = function(block) {

View File

@@ -13,8 +13,12 @@
goog.provide('Blockly.Python'); goog.provide('Blockly.Python');
goog.require('Blockly.Generator'); goog.require('Blockly.Generator');
goog.require('Blockly.Names');
goog.require('Blockly.Variables');
goog.require('Blockly.inputTypes'); goog.require('Blockly.inputTypes');
goog.require('Blockly.utils.string'); goog.require('Blockly.utils.string');
goog.requireType('Blockly.Block');
goog.requireType('Blockly.Workspace');
/** /**
@@ -305,7 +309,7 @@ Blockly.Python.getAdjustedInt = function(block, atId, opt_delta, opt_negate) {
const atOrder = delta ? this.ORDER_ADDITIVE : this.ORDER_NONE; const atOrder = delta ? this.ORDER_ADDITIVE : this.ORDER_NONE;
let at = this.valueToCode(block, atId, atOrder) || defaultAtIndex; let at = this.valueToCode(block, atId, atOrder) || defaultAtIndex;
if (Blockly.isNumber(at)) { if (Blockly.utils.string.isNumber(at)) {
// If the index is a naked number, adjust it right now. // If the index is a naked number, adjust it right now.
at = parseInt(at, 10) + delta; at = parseInt(at, 10) + delta;
if (opt_negate) { if (opt_negate) {

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Python.lists'); goog.provide('Blockly.Python.lists');
goog.require('Blockly.Python'); goog.require('Blockly.Python');
goog.require('Blockly.utils.string');
Blockly.Python['lists_create_empty'] = function(block) { Blockly.Python['lists_create_empty'] = function(block) {
@@ -282,7 +283,7 @@ Blockly.Python['lists_getSublist'] = function(block) {
at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true); at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true);
// Ensure that if the result calculated is 0 that sub-sequence will // Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected. // include all elements as expected.
if (!Blockly.isNumber(String(at2))) { if (!Blockly.utils.string.isNumber(String(at2))) {
Blockly.Python.definitions_['import_sys'] = 'import sys'; Blockly.Python.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize'; at2 += ' or sys.maxsize';
} else if (at2 === 0) { } else if (at2 === 0) {

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Python.loops'); goog.provide('Blockly.Python.loops');
goog.require('Blockly.Python'); goog.require('Blockly.Python');
goog.require('Blockly.utils.string');
Blockly.Python['controls_repeat_ext'] = function(block) { Blockly.Python['controls_repeat_ext'] = function(block) {
@@ -26,7 +27,7 @@ Blockly.Python['controls_repeat_ext'] = function(block) {
repeats = Blockly.Python.valueToCode(block, 'TIMES', repeats = Blockly.Python.valueToCode(block, 'TIMES',
Blockly.Python.ORDER_NONE) || '0'; Blockly.Python.ORDER_NONE) || '0';
} }
if (Blockly.isNumber(repeats)) { if (Blockly.utils.string.isNumber(repeats)) {
repeats = parseInt(repeats, 10); repeats = parseInt(repeats, 10);
} else { } else {
repeats = 'int(' + repeats + ')'; repeats = 'int(' + repeats + ')';
@@ -97,8 +98,8 @@ Blockly.Python['controls_for'] = function(block) {
defineDownRange() + '(' + start + ', ' + end + ', ' + inc + ')'; defineDownRange() + '(' + start + ', ' + end + ', ' + inc + ')';
}; };
if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) && if (Blockly.utils.string.isNumber(argument0) && Blockly.utils.string.isNumber(argument1) &&
Blockly.isNumber(increment)) { Blockly.utils.string.isNumber(increment)) {
// All parameters are simple numbers. // All parameters are simple numbers.
argument0 = Number(argument0); argument0 = Number(argument0);
argument1 = Number(argument1); argument1 = Number(argument1);
@@ -136,7 +137,7 @@ Blockly.Python['controls_for'] = function(block) {
} else { } else {
// Cache non-trivial values to variables to prevent repeated look-ups. // Cache non-trivial values to variables to prevent repeated look-ups.
const scrub = function(arg, suffix) { const scrub = function(arg, suffix) {
if (Blockly.isNumber(arg)) { if (Blockly.utils.string.isNumber(arg)) {
// Simple number. // Simple number.
arg = Number(arg); arg = Number(arg);
} else if (arg.match(/^\w+$/)) { } else if (arg.match(/^\w+$/)) {

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Python.procedures'); goog.provide('Blockly.Python.procedures');
goog.require('Blockly.Python'); goog.require('Blockly.Python');
goog.require('Blockly.Variables');
Blockly.Python['procedures_defreturn'] = function(block) { Blockly.Python['procedures_defreturn'] = function(block) {

View File

@@ -13,6 +13,7 @@
goog.provide('Blockly.Python.texts'); goog.provide('Blockly.Python.texts');
goog.require('Blockly.Python'); goog.require('Blockly.Python');
goog.require('Blockly.utils.string');
Blockly.Python['text'] = function(block) { Blockly.Python['text'] = function(block) {
@@ -200,7 +201,7 @@ Blockly.Python['text_getSubstring'] = function(block) {
at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true); at2 = Blockly.Python.getAdjustedInt(block, 'AT2', 0, true);
// Ensure that if the result calculated is 0 that sub-sequence will // Ensure that if the result calculated is 0 that sub-sequence will
// include all elements as expected. // include all elements as expected.
if (!Blockly.isNumber(String(at2))) { if (!Blockly.utils.string.isNumber(String(at2))) {
Blockly.Python.definitions_['import_sys'] = 'import sys'; Blockly.Python.definitions_['import_sys'] = 'import sys';
at2 += ' or sys.maxsize'; at2 += ' or sys.maxsize';
} else if (at2 === 0) { } else if (at2 === 0) {

View File

@@ -78,187 +78,187 @@
"./core/utils/useragent.js", "./core/utils/useragent.js",
"./core/utils/svg.js", "./core/utils/svg.js",
"./core/utils/dom.js", "./core/utils/dom.js",
"./core/utils/array.js", "./core/connection_checker.js",
"./core/utils/idgenerator.js", "./core/keyboard_nav/ast_node.js",
"./core/keyboard_nav/cursor.js",
"./core/registry.js",
"./core/utils/math.js", "./core/utils/math.js",
"./core/utils/idgenerator.js",
"./core/utils/array.js",
"./core/workspace.js",
"./core/utils/object.js", "./core/utils/object.js",
"./core/connection_type.js", "./core/events/events_block_delete.js",
"./core/internal_constants.js", "./core/toolbox/separator.js",
"./core/utils/colour.js", "./core/toolbox/toolbox_item.js",
"./core/utils/string.js", "./core/keyboard_nav/basic_cursor.js",
"./core/utils/parsing.js", "./core/keyboard_nav/tab_navigate_cursor.js",
"./core/serialization/priorities.js", "./core/warning.js",
"./core/interfaces/i_serializer.js", "./core/events/events_bubble_open.js",
"./core/serialization/registry.js", "./core/comment.js",
"./core/serialization/exceptions.js", "./core/events/events_block_move.js",
"./core/utils/size.js", "./core/events/events_block_drag.js",
"./core/input_types.js", "./core/bump_objects.js",
"./core/serialization/blocks.js", "./core/block_dragger.js",
"./core/utils/deprecation.js", "./core/workspace_dragger.js",
"./core/css.js", "./core/interfaces/i_block_dragger.js",
"./core/utils/aria.js", "./core/events/events_viewport.js",
"./core/interfaces/i_toolbox_item.js", "./core/events/events_theme_change.js",
"./core/interfaces/i_selectable_toolbox_item.js", "./core/events/events_block_create.js",
"./core/interfaces/i_collapsible_toolbox_item.js", "./core/events/events_click.js",
"./core/block_animations.js", "./core/zoom_controls.js",
"./core/utils/coordinate.js", "./core/workspace_drag_surface_svg.js",
"./core/utils/style.js", "./core/events/events_selected.js",
"./core/utils/rect.js", "./core/events/events_comment_move.js",
"./core/dialog.js", "./core/events/events_comment_delete.js",
"./core/utils/xml.js", "./core/events/events_comment_create.js",
"./core/events/events_var_base.js", "./core/events/events_comment_base.js",
"./core/events/events_var_create.js", "./core/events/events_comment_change.js",
"./core/variable_model.js", "./core/workspace_comment.js",
"./core/variables.js", "./core/interfaces/i_movable.js",
"./core/utils/svg_paths.js", "./core/interfaces/i_selectable.js",
"./core/interfaces/i_connection_checker.js", "./core/interfaces/i_copyable.js",
"./core/constants.js", "./core/workspace_comment_svg.js",
"./core/connection_db.js", "./core/workspace_audio.js",
"./core/rendered_connection.js", "./core/events/events_trashcan_open.js",
"./core/theme.js", "./core/drag_target.js",
"./core/renderers/common/constants.js", "./core/delete_area.js",
"./core/dropdowndiv.js", "./core/positionable_helpers.js",
"./core/interfaces/i_ast_node_location.js", "./core/trashcan.js",
"./core/interfaces/i_ast_node_location_svg.js", "./core/touch_gesture.js",
"./core/interfaces/i_ast_node_location_with_block.js", "./core/theme_manager.js",
"./core/utils/keycodes.js", "./core/scrollbar_pair.js",
"./core/shortcut_registry.js", "./core/options.js",
"./core/interfaces/i_keyboard_accessible.js", "./core/interfaces/i_bounded_element.js",
"./core/interfaces/i_registrable.js", "./core/grid.js",
"./core/interfaces/i_registrable_field.js", "./core/flyout_button.js",
"./core/field_registry.js", "./core/contextmenu_registry.js",
"./core/field_label.js", "./core/theme/classic.js",
"./core/input.js", "./core/blockly_options.js",
"./core/events/events_ui_base.js", "./core/utils.js",
"./core/events/events_marker_move.js", "./core/renderers/measurables/top_row.js",
"./core/renderers/common/marker_svg.js", "./core/renderers/measurables/statement_input.js",
"./core/keyboard_nav/marker.js", "./core/renderers/measurables/square_corner.js",
"./core/marker_manager.js", "./core/renderers/measurables/spacer_row.js",
"./core/events/events_block_base.js", "./core/renderers/measurables/round_corner.js",
"./core/events/events_block_change.js", "./core/renderers/common/path_object.js",
"./core/field.js", "./core/interfaces/i_positionable.js",
"./core/events/events_var_delete.js", "./core/interfaces/i_drag_target.js",
"./core/events/events_var_rename.js", "./core/interfaces/i_delete_area.js",
"./core/variable_map.js", "./core/interfaces/i_component.js",
"./core/names.js", "./core/interfaces/i_autohideable.js",
"./core/procedures.js", "./core/component_manager.js",
"./core/variables_dynamic.js", "./core/insertion_marker_manager.js",
"./core/renderers/common/debug.js", "./core/renderers/common/i_path_object.js",
"./core/renderers/measurables/in_row_spacer.js", "./core/renderers/common/drawer.js",
"./core/renderers/common/renderer.js",
"./core/renderers/measurables/previous_connection.js",
"./core/renderers/measurables/output_connection.js",
"./core/renderers/measurables/jagged_edge.js",
"./core/renderers/measurables/input_row.js",
"./core/renderers/measurables/inline_input.js",
"./core/scrollbar.js",
"./core/utils/metrics.js",
"./core/interfaces/i_metrics_manager.js",
"./core/metrics_manager.js",
"./core/interfaces/i_deletable.js",
"./core/interfaces/i_draggable.js",
"./core/interfaces/i_contextmenu.js",
"./core/interfaces/i_bubble.js",
"./core/block_drag_surface.js",
"./core/bubble.js",
"./core/icon.js",
"./core/renderers/measurables/icon.js",
"./core/renderers/measurables/hat.js",
"./core/renderers/measurables/field.js",
"./core/renderers/measurables/external_value_input.js",
"./core/renderers/common/info.js",
"./core/renderers/common/debugger.js",
"./core/renderers/measurables/input_connection.js", "./core/renderers/measurables/input_connection.js",
"./core/renderers/measurables/in_row_spacer.js",
"./core/renderers/measurables/row.js", "./core/renderers/measurables/row.js",
"./core/renderers/measurables/types.js", "./core/renderers/measurables/types.js",
"./core/renderers/measurables/base.js", "./core/renderers/measurables/base.js",
"./core/renderers/measurables/connection.js", "./core/renderers/measurables/connection.js",
"./core/renderers/measurables/next_connection.js", "./core/renderers/measurables/next_connection.js",
"./core/renderers/measurables/bottom_row.js", "./core/renderers/measurables/bottom_row.js",
"./core/renderers/measurables/external_value_input.js", "./core/renderers/common/debug.js",
"./core/renderers/measurables/field.js",
"./core/renderers/measurables/hat.js",
"./core/block_drag_surface.js",
"./core/interfaces/i_contextmenu.js",
"./core/interfaces/i_deletable.js",
"./core/interfaces/i_draggable.js",
"./core/interfaces/i_bubble.js",
"./core/utils/metrics.js",
"./core/interfaces/i_metrics_manager.js",
"./core/metrics_manager.js",
"./core/scrollbar.js",
"./core/bubble.js",
"./core/icon.js",
"./core/renderers/measurables/icon.js",
"./core/renderers/measurables/inline_input.js",
"./core/renderers/measurables/input_row.js",
"./core/renderers/measurables/jagged_edge.js",
"./core/renderers/measurables/output_connection.js",
"./core/renderers/measurables/previous_connection.js",
"./core/renderers/common/drawer.js",
"./core/renderers/common/i_path_object.js",
"./core/interfaces/i_component.js",
"./core/interfaces/i_autohideable.js",
"./core/interfaces/i_drag_target.js",
"./core/interfaces/i_delete_area.js",
"./core/interfaces/i_positionable.js",
"./core/component_manager.js",
"./core/insertion_marker_manager.js",
"./core/renderers/common/path_object.js",
"./core/renderers/common/renderer.js",
"./core/renderers/measurables/round_corner.js",
"./core/renderers/measurables/spacer_row.js",
"./core/renderers/measurables/square_corner.js",
"./core/renderers/measurables/statement_input.js",
"./core/renderers/measurables/top_row.js",
"./core/renderers/common/info.js",
"./core/renderers/common/debugger.js",
"./core/renderers/common/block_rendering.js", "./core/renderers/common/block_rendering.js",
"./core/utils.js", "./core/variables_dynamic.js",
"./core/blockly_options.js", "./core/events/events_block_base.js",
"./core/theme/classic.js", "./core/events/events_block_change.js",
"./core/contextmenu_registry.js", "./core/events/events_ui_base.js",
"./core/flyout_button.js", "./core/events/events_marker_move.js",
"./core/grid.js", "./core/renderers/common/marker_svg.js",
"./core/interfaces/i_bounded_element.js", "./core/keyboard_nav/marker.js",
"./core/options.js", "./core/marker_manager.js",
"./core/scrollbar_pair.js", "./core/field_label.js",
"./core/theme_manager.js", "./core/interfaces/i_registrable_field.js",
"./core/touch_gesture.js", "./core/field_registry.js",
"./core/positionable_helpers.js", "./core/input.js",
"./core/drag_target.js", "./core/interfaces/i_registrable.js",
"./core/delete_area.js", "./core/utils/keycodes.js",
"./core/events/events_trashcan_open.js", "./core/shortcut_registry.js",
"./core/trashcan.js", "./core/interfaces/i_keyboard_accessible.js",
"./core/workspace_audio.js", "./core/interfaces/i_ast_node_location_with_block.js",
"./core/interfaces/i_movable.js", "./core/interfaces/i_ast_node_location.js",
"./core/interfaces/i_selectable.js", "./core/interfaces/i_ast_node_location_svg.js",
"./core/interfaces/i_copyable.js", "./core/dropdowndiv.js",
"./core/events/events_comment_create.js", "./core/theme.js",
"./core/events/events_comment_delete.js", "./core/constants.js",
"./core/events/events_comment_base.js", "./core/interfaces/i_connection_checker.js",
"./core/events/events_comment_change.js", "./core/connection_db.js",
"./core/events/events_comment_move.js", "./core/rendered_connection.js",
"./core/workspace_comment.js", "./core/utils/svg_paths.js",
"./core/events/events_selected.js", "./core/renderers/common/constants.js",
"./core/workspace_comment_svg.js", "./core/field.js",
"./core/workspace_drag_surface_svg.js", "./core/procedures.js",
"./core/events/events_click.js",
"./core/zoom_controls.js",
"./core/events/events_block_create.js",
"./core/events/events_theme_change.js",
"./core/events/events_viewport.js",
"./core/workspace_svg.js", "./core/workspace_svg.js",
"./core/utils/rect.js",
"./core/utils/coordinate.js",
"./core/utils/style.js",
"./core/utils/svg_math.js", "./core/utils/svg_math.js",
"./core/bubble_dragger.js", "./core/bubble_dragger.js",
"./core/interfaces/i_block_dragger.js", "./core/block_animations.js",
"./core/workspace_dragger.js",
"./core/bump_objects.js",
"./core/events/events_block_drag.js",
"./core/events/events_block_move.js",
"./core/block_dragger.js",
"./core/gesture.js", "./core/gesture.js",
"./core/touch.js", "./core/touch.js",
"./core/browser_events.js", "./core/browser_events.js",
"./core/tooltip.js", "./core/tooltip.js",
"./core/events/events_bubble_open.js",
"./core/warning.js",
"./core/comment.js",
"./core/keyboard_nav/basic_cursor.js",
"./core/keyboard_nav/tab_navigate_cursor.js",
"./core/block_svg.js", "./core/block_svg.js",
"./core/interfaces/i_flyout.js", "./core/interfaces/i_flyout.js",
"./core/interfaces/i_toolbox.js", "./core/interfaces/i_toolbox.js",
"./core/toolbox/toolbox_item.js", "./core/interfaces/i_toolbox_item.js",
"./core/interfaces/i_selectable_toolbox_item.js",
"./core/interfaces/i_collapsible_toolbox_item.js",
"./core/utils/aria.js",
"./core/utils/deprecation.js",
"./core/css.js",
"./core/toolbox/category.js", "./core/toolbox/category.js",
"./core/toolbox/separator.js", "./core/utils/size.js",
"./core/serialization/exceptions.js",
"./core/interfaces/i_serializer.js",
"./core/serialization/registry.js",
"./core/serialization/priorities.js",
"./core/serialization/blocks.js",
"./core/utils/toolbox.js", "./core/utils/toolbox.js",
"./core/mutator.js", "./core/mutator.js",
"./core/connection_type.js",
"./core/internal_constants.js",
"./core/utils/colour.js",
"./core/utils/parsing.js",
"./core/extensions.js", "./core/extensions.js",
"./core/events/events_block_delete.js",
"./core/block.js", "./core/block.js",
"./core/keyboard_nav/ast_node.js", "./core/utils/string.js",
"./core/keyboard_nav/cursor.js", "./core/input_types.js",
"./core/registry.js", "./core/dialog.js",
"./core/connection_checker.js", "./core/utils/xml.js",
"./core/workspace.js", "./core/events/events_var_base.js",
"./core/events/events_var_create.js",
"./core/variable_model.js",
"./core/variables.js",
"./core/events/events_var_rename.js",
"./core/events/events_var_delete.js",
"./core/variable_map.js",
"./core/names.js",
"./core/events/events_abstract.js", "./core/events/events_abstract.js",
"./core/events/utils.js", "./core/events/utils.js",
"./core/xml.js", "./core/xml.js",

View File

@@ -266,59 +266,59 @@ goog.addDependency('../../core/workspace_dragger.js', ['Blockly.WorkspaceDragger
goog.addDependency('../../core/workspace_svg.js', ['Blockly.WorkspaceSvg'], ['Blockly.BlockSvg', 'Blockly.ComponentManager', 'Blockly.ConnectionDB', 'Blockly.ContextMenu', 'Blockly.ContextMenuRegistry', 'Blockly.DropDownDiv', 'Blockly.Events.BlockCreate', 'Blockly.Events.ThemeChange', 'Blockly.Events.ViewportChange', 'Blockly.Events.utils', 'Blockly.Gesture', 'Blockly.Grid', 'Blockly.IASTNodeLocationSvg', 'Blockly.MarkerManager', 'Blockly.MetricsManager', 'Blockly.Msg', 'Blockly.Options', 'Blockly.ThemeManager', 'Blockly.Themes.Classic', 'Blockly.Tooltip', 'Blockly.TouchGesture', 'Blockly.WidgetDiv', 'Blockly.Workspace', 'Blockly.WorkspaceAudio', 'Blockly.Xml', 'Blockly.blockRendering', 'Blockly.browserEvents', 'Blockly.common', 'Blockly.internalConstants', 'Blockly.registry', 'Blockly.serialization.blocks', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.array', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.svgMath', 'Blockly.utils.toolbox', 'Blockly.utils.userAgent'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/workspace_svg.js', ['Blockly.WorkspaceSvg'], ['Blockly.BlockSvg', 'Blockly.ComponentManager', 'Blockly.ConnectionDB', 'Blockly.ContextMenu', 'Blockly.ContextMenuRegistry', 'Blockly.DropDownDiv', 'Blockly.Events.BlockCreate', 'Blockly.Events.ThemeChange', 'Blockly.Events.ViewportChange', 'Blockly.Events.utils', 'Blockly.Gesture', 'Blockly.Grid', 'Blockly.IASTNodeLocationSvg', 'Blockly.MarkerManager', 'Blockly.MetricsManager', 'Blockly.Msg', 'Blockly.Options', 'Blockly.ThemeManager', 'Blockly.Themes.Classic', 'Blockly.Tooltip', 'Blockly.TouchGesture', 'Blockly.WidgetDiv', 'Blockly.Workspace', 'Blockly.WorkspaceAudio', 'Blockly.Xml', 'Blockly.blockRendering', 'Blockly.browserEvents', 'Blockly.common', 'Blockly.internalConstants', 'Blockly.registry', 'Blockly.serialization.blocks', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.array', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.svgMath', 'Blockly.utils.toolbox', 'Blockly.utils.userAgent'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/xml.js', ['Blockly.Xml'], ['Blockly.Events.utils', 'Blockly.inputTypes', 'Blockly.utils.Size', 'Blockly.utils.dom', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/xml.js', ['Blockly.Xml'], ['Blockly.Events.utils', 'Blockly.inputTypes', 'Blockly.utils.Size', 'Blockly.utils.dom', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/zoom_controls.js', ['Blockly.ZoomControls'], ['Blockly.ComponentManager', 'Blockly.Css', 'Blockly.Events.Click', 'Blockly.Events.utils', 'Blockly.IPositionable', 'Blockly.Touch', 'Blockly.browserEvents', 'Blockly.internalConstants', 'Blockly.uiPosition', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/zoom_controls.js', ['Blockly.ZoomControls'], ['Blockly.ComponentManager', 'Blockly.Css', 'Blockly.Events.Click', 'Blockly.Events.utils', 'Blockly.IPositionable', 'Blockly.Touch', 'Blockly.browserEvents', 'Blockly.internalConstants', 'Blockly.uiPosition', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../generators/dart.js', ['Blockly.Dart'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'}); goog.addDependency('../../generators/dart.js', ['Blockly.Dart'], ['Blockly.Generator', 'Blockly.Names', 'Blockly.Variables', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/all.js', ['Blockly.Dart.all'], ['Blockly.Dart.colour', 'Blockly.Dart.lists', 'Blockly.Dart.logic', 'Blockly.Dart.loops', 'Blockly.Dart.math', 'Blockly.Dart.procedures', 'Blockly.Dart.texts', 'Blockly.Dart.variables', 'Blockly.Dart.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/dart/all.js', ['Blockly.Dart.all'], ['Blockly.Dart.colour', 'Blockly.Dart.lists', 'Blockly.Dart.logic', 'Blockly.Dart.loops', 'Blockly.Dart.math', 'Blockly.Dart.procedures', 'Blockly.Dart.texts', 'Blockly.Dart.variables', 'Blockly.Dart.variablesDynamic'], {'module': 'goog'});
goog.addDependency('../../generators/dart/colour.js', ['Blockly.Dart.colour'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/colour.js', ['Blockly.Dart.colour'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/lists.js', ['Blockly.Dart.lists'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/lists.js', ['Blockly.Dart.lists'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/logic.js', ['Blockly.Dart.logic'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/logic.js', ['Blockly.Dart.logic'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/loops.js', ['Blockly.Dart.loops'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/loops.js', ['Blockly.Dart.loops'], ['Blockly.Dart', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/math.js', ['Blockly.Dart.math'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/math.js', ['Blockly.Dart.math'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/procedures.js', ['Blockly.Dart.procedures'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/procedures.js', ['Blockly.Dart.procedures'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/text.js', ['Blockly.Dart.texts'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/text.js', ['Blockly.Dart.texts'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/variables.js', ['Blockly.Dart.variables'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/variables.js', ['Blockly.Dart.variables'], ['Blockly.Dart'], {'lang': 'es6'});
goog.addDependency('../../generators/dart/variables_dynamic.js', ['Blockly.Dart.variablesDynamic'], ['Blockly.Dart', 'Blockly.Dart.variables']); goog.addDependency('../../generators/dart/variables_dynamic.js', ['Blockly.Dart.variablesDynamic'], ['Blockly.Dart', 'Blockly.Dart.variables']);
goog.addDependency('../../generators/javascript.js', ['Blockly.JavaScript'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.global', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript.js', ['Blockly.JavaScript'], ['Blockly.Generator', 'Blockly.Names', 'Blockly.Variables', 'Blockly.inputTypes', 'Blockly.utils.global', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/all.js', ['Blockly.JavaScript.all'], ['Blockly.JavaScript.colour', 'Blockly.JavaScript.lists', 'Blockly.JavaScript.logic', 'Blockly.JavaScript.loops', 'Blockly.JavaScript.math', 'Blockly.JavaScript.procedures', 'Blockly.JavaScript.texts', 'Blockly.JavaScript.variables', 'Blockly.JavaScript.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/javascript/all.js', ['Blockly.JavaScript.all'], ['Blockly.JavaScript.colour', 'Blockly.JavaScript.lists', 'Blockly.JavaScript.logic', 'Blockly.JavaScript.loops', 'Blockly.JavaScript.math', 'Blockly.JavaScript.procedures', 'Blockly.JavaScript.texts', 'Blockly.JavaScript.variables', 'Blockly.JavaScript.variablesDynamic'], {'module': 'goog'});
goog.addDependency('../../generators/javascript/colour.js', ['Blockly.JavaScript.colour'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/colour.js', ['Blockly.JavaScript.colour'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/lists.js', ['Blockly.JavaScript.lists'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/lists.js', ['Blockly.JavaScript.lists'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/logic.js', ['Blockly.JavaScript.logic'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/logic.js', ['Blockly.JavaScript.logic'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/loops.js', ['Blockly.JavaScript.loops'], ['Blockly.JavaScript', 'Blockly.loopMixin'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/loops.js', ['Blockly.JavaScript.loops'], ['Blockly.JavaScript', 'Blockly.loopMixin', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/math.js', ['Blockly.JavaScript.math'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/math.js', ['Blockly.JavaScript.math'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/procedures.js', ['Blockly.JavaScript.procedures'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/procedures.js', ['Blockly.JavaScript.procedures'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/text.js', ['Blockly.JavaScript.texts'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/text.js', ['Blockly.JavaScript.texts'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/variables.js', ['Blockly.JavaScript.variables'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/variables.js', ['Blockly.JavaScript.variables'], ['Blockly.JavaScript'], {'lang': 'es6'});
goog.addDependency('../../generators/javascript/variables_dynamic.js', ['Blockly.JavaScript.variablesDynamic'], ['Blockly.JavaScript', 'Blockly.JavaScript.variables']); goog.addDependency('../../generators/javascript/variables_dynamic.js', ['Blockly.JavaScript.variablesDynamic'], ['Blockly.JavaScript', 'Blockly.JavaScript.variables']);
goog.addDependency('../../generators/lua.js', ['Blockly.Lua'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); goog.addDependency('../../generators/lua.js', ['Blockly.Lua'], ['Blockly.Generator', 'Blockly.Names', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/all.js', ['Blockly.Lua.all'], ['Blockly.Lua.colour', 'Blockly.Lua.lists', 'Blockly.Lua.logic', 'Blockly.Lua.loops', 'Blockly.Lua.math', 'Blockly.Lua.procedures', 'Blockly.Lua.texts', 'Blockly.Lua.variables', 'Blockly.Lua.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/lua/all.js', ['Blockly.Lua.all'], ['Blockly.Lua.colour', 'Blockly.Lua.lists', 'Blockly.Lua.logic', 'Blockly.Lua.loops', 'Blockly.Lua.math', 'Blockly.Lua.procedures', 'Blockly.Lua.texts', 'Blockly.Lua.variables', 'Blockly.Lua.variablesDynamic'], {'module': 'goog'});
goog.addDependency('../../generators/lua/colour.js', ['Blockly.Lua.colour'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/colour.js', ['Blockly.Lua.colour'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/lists.js', ['Blockly.Lua.lists'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/lists.js', ['Blockly.Lua.lists'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/logic.js', ['Blockly.Lua.logic'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/logic.js', ['Blockly.Lua.logic'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/loops.js', ['Blockly.Lua.loops'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/loops.js', ['Blockly.Lua.loops'], ['Blockly.Lua', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/math.js', ['Blockly.Lua.math'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/math.js', ['Blockly.Lua.math'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/procedures.js', ['Blockly.Lua.procedures'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/procedures.js', ['Blockly.Lua.procedures'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/text.js', ['Blockly.Lua.texts'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/text.js', ['Blockly.Lua.texts'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/variables.js', ['Blockly.Lua.variables'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/variables.js', ['Blockly.Lua.variables'], ['Blockly.Lua'], {'lang': 'es6'});
goog.addDependency('../../generators/lua/variables_dynamic.js', ['Blockly.Lua.variablesDynamic'], ['Blockly.Lua', 'Blockly.Lua.variables']); goog.addDependency('../../generators/lua/variables_dynamic.js', ['Blockly.Lua.variablesDynamic'], ['Blockly.Lua', 'Blockly.Lua.variables']);
goog.addDependency('../../generators/php.js', ['Blockly.PHP'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); goog.addDependency('../../generators/php.js', ['Blockly.PHP'], ['Blockly.Generator', 'Blockly.Names', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/php/all.js', ['Blockly.PHP.all'], ['Blockly.PHP.colour', 'Blockly.PHP.lists', 'Blockly.PHP.logic', 'Blockly.PHP.loops', 'Blockly.PHP.math', 'Blockly.PHP.procedures', 'Blockly.PHP.texts', 'Blockly.PHP.variables', 'Blockly.PHP.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/php/all.js', ['Blockly.PHP.all'], ['Blockly.PHP.colour', 'Blockly.PHP.lists', 'Blockly.PHP.logic', 'Blockly.PHP.loops', 'Blockly.PHP.math', 'Blockly.PHP.procedures', 'Blockly.PHP.texts', 'Blockly.PHP.variables', 'Blockly.PHP.variablesDynamic'], {'module': 'goog'});
goog.addDependency('../../generators/php/colour.js', ['Blockly.PHP.colour'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/colour.js', ['Blockly.PHP.colour'], ['Blockly.PHP'], {'lang': 'es6'});
goog.addDependency('../../generators/php/lists.js', ['Blockly.PHP.lists'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/lists.js', ['Blockly.PHP.lists'], ['Blockly.PHP', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/php/logic.js', ['Blockly.PHP.logic'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/logic.js', ['Blockly.PHP.logic'], ['Blockly.PHP'], {'lang': 'es6'});
goog.addDependency('../../generators/php/loops.js', ['Blockly.PHP.loops'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/loops.js', ['Blockly.PHP.loops'], ['Blockly.PHP', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/php/math.js', ['Blockly.PHP.math'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/math.js', ['Blockly.PHP.math'], ['Blockly.PHP'], {'lang': 'es6'});
goog.addDependency('../../generators/php/procedures.js', ['Blockly.PHP.procedures'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/procedures.js', ['Blockly.PHP.procedures'], ['Blockly.Names', 'Blockly.PHP', 'Blockly.Variables'], {'lang': 'es6'});
goog.addDependency('../../generators/php/text.js', ['Blockly.PHP.texts'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/text.js', ['Blockly.PHP.texts'], ['Blockly.PHP'], {'lang': 'es6'});
goog.addDependency('../../generators/php/variables.js', ['Blockly.PHP.variables'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/variables.js', ['Blockly.PHP.variables'], ['Blockly.PHP'], {'lang': 'es6'});
goog.addDependency('../../generators/php/variables_dynamic.js', ['Blockly.PHP.variablesDynamic'], ['Blockly.PHP', 'Blockly.PHP.variables']); goog.addDependency('../../generators/php/variables_dynamic.js', ['Blockly.PHP.variablesDynamic'], ['Blockly.PHP', 'Blockly.PHP.variables']);
goog.addDependency('../../generators/python.js', ['Blockly.Python'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'}); goog.addDependency('../../generators/python.js', ['Blockly.Python'], ['Blockly.Generator', 'Blockly.Names', 'Blockly.Variables', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/python/all.js', ['Blockly.Python.all'], ['Blockly.Python.colour', 'Blockly.Python.lists', 'Blockly.Python.logic', 'Blockly.Python.loops', 'Blockly.Python.math', 'Blockly.Python.procedures', 'Blockly.Python.texts', 'Blockly.Python.variables', 'Blockly.Python.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/python/all.js', ['Blockly.Python.all'], ['Blockly.Python.colour', 'Blockly.Python.lists', 'Blockly.Python.logic', 'Blockly.Python.loops', 'Blockly.Python.math', 'Blockly.Python.procedures', 'Blockly.Python.texts', 'Blockly.Python.variables', 'Blockly.Python.variablesDynamic'], {'module': 'goog'});
goog.addDependency('../../generators/python/colour.js', ['Blockly.Python.colour'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/colour.js', ['Blockly.Python.colour'], ['Blockly.Python'], {'lang': 'es6'});
goog.addDependency('../../generators/python/lists.js', ['Blockly.Python.lists'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/lists.js', ['Blockly.Python.lists'], ['Blockly.Python', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/python/logic.js', ['Blockly.Python.logic'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/logic.js', ['Blockly.Python.logic'], ['Blockly.Python'], {'lang': 'es6'});
goog.addDependency('../../generators/python/loops.js', ['Blockly.Python.loops'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/loops.js', ['Blockly.Python.loops'], ['Blockly.Python', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/python/math.js', ['Blockly.Python.math'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/math.js', ['Blockly.Python.math'], ['Blockly.Python'], {'lang': 'es6'});
goog.addDependency('../../generators/python/procedures.js', ['Blockly.Python.procedures'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/procedures.js', ['Blockly.Python.procedures'], ['Blockly.Python', 'Blockly.Variables'], {'lang': 'es6'});
goog.addDependency('../../generators/python/text.js', ['Blockly.Python.texts'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/text.js', ['Blockly.Python.texts'], ['Blockly.Python', 'Blockly.utils.string'], {'lang': 'es6'});
goog.addDependency('../../generators/python/variables.js', ['Blockly.Python.variables'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/variables.js', ['Blockly.Python.variables'], ['Blockly.Python'], {'lang': 'es6'});
goog.addDependency('../../generators/python/variables_dynamic.js', ['Blockly.Python.variablesDynamic'], ['Blockly.Python', 'Blockly.Python.variables']); goog.addDependency('../../generators/python/variables_dynamic.js', ['Blockly.Python.variablesDynamic'], ['Blockly.Python', 'Blockly.Python.variables']);
goog.addDependency('base.js', [], []); goog.addDependency('base.js', [], []);