mirror of
https://github.com/google/blockly.git
synced 2026-01-07 09:00:11 +01:00
Change parseFloat() to Number()
Number() is a bit less forgiving than parseFloat() and is more likely to generate NaN rather than some random number. An audit of each case shows nowhere that parseFloat()’s features are needed.
This commit is contained in:
@@ -354,7 +354,7 @@ Blockly.JavaScript['lists_sort'] = function(block) {
|
||||
'(type, direction) {',
|
||||
' var compareFuncs = {',
|
||||
' "NUMERIC": function(a, b) {',
|
||||
' return parseFloat(a) - parseFloat(b); },',
|
||||
' return Number(a) - Number(b); },',
|
||||
' "TEXT": function(a, b) {',
|
||||
' return a.toString() > b.toString() ? 1 : -1; },',
|
||||
' "IGNORE_CASE": function(a, b) {',
|
||||
|
||||
@@ -90,11 +90,11 @@ Blockly.JavaScript['controls_for'] = function(block) {
|
||||
if (Blockly.isNumber(argument0) && Blockly.isNumber(argument1) &&
|
||||
Blockly.isNumber(increment)) {
|
||||
// All arguments are simple numbers.
|
||||
var up = parseFloat(argument0) <= parseFloat(argument1);
|
||||
var up = Number(argument0) <= Number(argument1);
|
||||
code = 'for (' + variable0 + ' = ' + argument0 + '; ' +
|
||||
variable0 + (up ? ' <= ' : ' >= ') + argument1 + '; ' +
|
||||
variable0;
|
||||
var step = Math.abs(parseFloat(increment));
|
||||
var step = Math.abs(Number(increment));
|
||||
if (step == 1) {
|
||||
code += up ? '++' : '--';
|
||||
} else {
|
||||
|
||||
@@ -31,7 +31,7 @@ goog.require('Blockly.JavaScript');
|
||||
|
||||
Blockly.JavaScript['math_number'] = function(block) {
|
||||
// Numeric value.
|
||||
var code = parseFloat(block.getFieldValue('NUM'));
|
||||
var code = Number(block.getFieldValue('NUM'));
|
||||
var order = code >= 0 ? Blockly.JavaScript.ORDER_ATOMIC :
|
||||
Blockly.JavaScript.ORDER_UNARY_NEGATION;
|
||||
return [code, order];
|
||||
|
||||
@@ -316,7 +316,7 @@ Blockly.JavaScript['text_prompt_ext'] = function(block) {
|
||||
var code = 'window.prompt(' + msg + ')';
|
||||
var toNumber = block.getFieldValue('TYPE') == 'NUMBER';
|
||||
if (toNumber) {
|
||||
code = 'parseFloat(' + code + ')';
|
||||
code = 'Number(' + code + ')';
|
||||
}
|
||||
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user