Fix precedence on isIndex blocks.

This commit is contained in:
Neil Fraser
2016-06-09 18:04:14 -07:00
parent dcc7de52a5
commit ef417d7a60
7 changed files with 13 additions and 14 deletions

View File

@@ -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];
};

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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];
};

View File

@@ -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];
};

View File

@@ -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) {