From ef417d7a6098df2c801d0c4f3aef5034f9246d83 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Thu, 9 Jun 2016 18:04:14 -0700 Subject: [PATCH] Fix precedence on isIndex blocks. --- generators/dart/lists.js | 8 ++++---- generators/dart/text.js | 2 +- generators/javascript/lists.js | 2 +- generators/javascript/text.js | 2 +- generators/php/lists.js | 8 ++++---- generators/php/text.js | 3 +-- generators/python/text.js | 2 +- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/generators/dart/lists.js b/generators/dart/lists.js index 8b0f8553b..24fcd2243 100644 --- a/generators/dart/lists.js +++ b/generators/dart/lists.js @@ -80,7 +80,7 @@ Blockly.Dart['lists_indexOf'] = function(block) { var argument1 = Blockly.Dart.valueToCode(block, 'VALUE', Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]'; var code = argument1 + '.' + operator + '(' + argument0 + ') + 1'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; + return [code, Blockly.Dart.ORDER_ADDITIVE]; }; Blockly.Dart['lists_getIndex'] = function(block) { @@ -318,10 +318,10 @@ Blockly.Dart['lists_sort'] = function(block) { var type = block.getFieldValue('TYPE'); var sortFunctionName = Blockly.Dart.provideFunction_( 'lists_sort', - ['List ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + + ['List ' + Blockly.Dart.FUNCTION_NAME_PLACEHOLDER_ + '(list, type, direction) {', ' var compareFuncs = {', - ' "NUMERIC": (a, b) => direction * a.compareTo(b),', + ' "NUMERIC": (a, b) => direction * a.compareTo(b),', ' "TEXT": (a, b) => direction * a.toString().compareTo(b.toString()),', ' "IGNORE_CASE": ', ' (a, b) => direction * ', @@ -332,7 +332,7 @@ Blockly.Dart['lists_sort'] = function(block) { ' list.sort(compare);', ' return list;', '}']); - return [sortFunctionName + '(' + listCode + ', ' + + return [sortFunctionName + '(' + listCode + ', ' + '"' + type + '", ' + direction + ')', Blockly.Dart.ORDER_UNARY_POSTFIX]; }; diff --git a/generators/dart/text.js b/generators/dart/text.js index 6a06c8241..ba5a75cb0 100644 --- a/generators/dart/text.js +++ b/generators/dart/text.js @@ -90,7 +90,7 @@ Blockly.Dart['text_indexOf'] = function(block) { var argument1 = Blockly.Dart.valueToCode(block, 'VALUE', Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\''; var code = argument1 + '.' + operator + '(' + argument0 + ') + 1'; - return [code, Blockly.Dart.ORDER_UNARY_POSTFIX]; + return [code, Blockly.Dart.ORDER_ADDITIVE]; }; Blockly.Dart['text_charAt'] = function(block) { diff --git a/generators/javascript/lists.js b/generators/javascript/lists.js index 2a06eab32..aa817f96f 100644 --- a/generators/javascript/lists.js +++ b/generators/javascript/lists.js @@ -88,7 +88,7 @@ Blockly.JavaScript['lists_indexOf'] = function(block) { var argument1 = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_MEMBER) || '[]'; var code = argument1 + '.' + operator + '(' + argument0 + ') + 1'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; + return [code, Blockly.JavaScript.ORDER_ADDITION]; }; Blockly.JavaScript['lists_getIndex'] = function(block) { diff --git a/generators/javascript/text.js b/generators/javascript/text.js index 78e94ed16..86befb9ef 100644 --- a/generators/javascript/text.js +++ b/generators/javascript/text.js @@ -95,7 +95,7 @@ Blockly.JavaScript['text_indexOf'] = function(block) { var argument1 = Blockly.JavaScript.valueToCode(block, 'VALUE', Blockly.JavaScript.ORDER_MEMBER) || '\'\''; var code = argument1 + '.' + operator + '(' + argument0 + ') + 1'; - return [code, Blockly.JavaScript.ORDER_MEMBER]; + return [code, Blockly.JavaScript.ORDER_ADDITION]; }; Blockly.JavaScript['text_charAt'] = function(block) { diff --git a/generators/php/lists.js b/generators/php/lists.js index d8685ca0e..d7111b19e 100644 --- a/generators/php/lists.js +++ b/generators/php/lists.js @@ -104,7 +104,7 @@ Blockly.PHP['lists_indexOf'] = function(block) { [ 'function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($haystack, $needle) {', ' for ($index = 0; $index < count($haystack); $index++) {', - ' if ($haystack[$index] == $needle) return $index+1;', + ' if ($haystack[$index] == $needle) return $index + 1;', ' }', ' return 0;', '}']); @@ -116,7 +116,7 @@ Blockly.PHP['lists_indexOf'] = function(block) { '($haystack, $needle) {', ' $last = 0;', ' for ($index = 0; $index < count($haystack); $index++) {', - ' if ($haystack[$index] == $needle) $last = $index+1;', + ' if ($haystack[$index] == $needle) $last = $index + 1;', ' }', ' return $last;', '}']); @@ -364,7 +364,7 @@ Blockly.PHP['lists_sort'] = function(block) { var type = block.getFieldValue('TYPE'); var functionName = Blockly.PHP.provideFunction_( 'lists_sort', [ - 'function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + + 'function ' + Blockly.PHP.FUNCTION_NAME_PLACEHOLDER_ + '($list, $type, $direction) {', ' $sortCmpFuncs = array(', ' "NUMERIC" => "strnatcasecmp",', @@ -379,7 +379,7 @@ Blockly.PHP['lists_sort'] = function(block) { ' }', ' return $list2;', '}']); - var sortCode = functionName + + var sortCode = functionName + '(' + listCode + ', "' + type + '", ' + direction + ')'; return [sortCode, Blockly.PHP.ORDER_FUNCTION_CALL]; }; diff --git a/generators/php/text.js b/generators/php/text.js index 561b4997c..3960ab011 100644 --- a/generators/php/text.js +++ b/generators/php/text.js @@ -103,7 +103,6 @@ Blockly.PHP['text_indexOf'] = function(block) { Blockly.PHP.ORDER_FUNCTION_CALL) || '\'\''; var argument1 = Blockly.PHP.valueToCode(block, 'VALUE', Blockly.PHP.ORDER_FUNCTION_CALL) || '\'\''; - var code = operator + '(' + argument1 + ', ' + argument0 + ') + 1'; var functionName = Blockly.PHP.provideFunction_( block.getFieldValue('END') == 'FIRST' ? @@ -113,7 +112,7 @@ Blockly.PHP['text_indexOf'] = function(block) { ' $pos = ' + operator + '($text, $search);', ' return $pos === false ? 0 : $pos + 1;', '}']); - code = functionName + '(' + argument1 + ', ' + argument0 + ')'; + var code = functionName + '(' + argument1 + ', ' + argument0 + ')'; return [code, Blockly.PHP.ORDER_FUNCTION_CALL]; }; diff --git a/generators/python/text.js b/generators/python/text.js index 7d3797b54..3ae0ffc8e 100644 --- a/generators/python/text.js +++ b/generators/python/text.js @@ -100,7 +100,7 @@ Blockly.Python['text_indexOf'] = function(block) { var argument1 = Blockly.Python.valueToCode(block, 'VALUE', Blockly.Python.ORDER_MEMBER) || '\'\''; var code = argument1 + '.' + operator + '(' + argument0 + ') + 1'; - return [code, Blockly.Python.ORDER_MEMBER]; + return [code, Blockly.Python.ORDER_ADDITIVE]; }; Blockly.Python['text_charAt'] = function(block) {