Remove asmCoercion familiy of functions from parseTools.js. NFC

These don't have a role to play any longer in a non-asm.js world.
diff --git a/src/parseTools.js b/src/parseTools.js
index 43270a2..688f0bb 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -420,7 +420,7 @@
 
 // Splits a number (an integer in a double, possibly > 32 bits) into an i64 value, represented by a low and high i32 pair.
 // Will suffer from rounding.
-function splitI64(value, floatConversion) {
+function splitI64(value) {
   // general idea:
   //
   //  $1$0 = ~~$d >>> 0;
@@ -436,18 +436,12 @@
   // For negatives, we need to ensure a -1 if the value is overall negative, even if not significant negative component
 
   const lowInput = legalizedI64s ? value : 'VALUE';
-  if (floatConversion) lowInput = asmFloatToInt(lowInput);
   const low = lowInput + '>>>0';
   const high = makeInlineCalculation(
-      asmCoercion('Math.abs(VALUE)', 'double') + ' >= ' + asmEnsureFloat('1', 'double') + ' ? ' +
-        '(VALUE > ' + asmEnsureFloat('0', 'double') + ' ? ' +
-        asmCoercion('Math.min(' + asmCoercion('Math.floor((VALUE)/' +
-        asmEnsureFloat(4294967296, 'double') + ')', 'double') + ', ' +
-        asmEnsureFloat(4294967295, 'double') + ')', 'i32') + '>>>0' +
+      'Math.abs(VALUE) >= 1 ? (VALUE > 0 ? ' +
+        'Math.min(Math.floor((VALUE)/4294967296), 4294967295)>>>0' +
         ' : ' +
-        asmFloatToInt(asmCoercion('Math.ceil((VALUE - +((' + asmFloatToInt('VALUE') + ')>>>0))/' +
-        asmEnsureFloat(4294967296, 'double') + ')', 'double')) + '>>>0' +
-        ')' +
+        'Math.ceil((VALUE - +((VALUE)>>>0))/4294967296)>>>0)' +
       ' : 0',
       value,
       'tempDouble',
@@ -490,66 +484,22 @@
   return `((${offset})>>${shifts})`;
 }
 
-function ensureDot(value) {
-  value = value.toString();
-  // if already dotted, or Infinity or NaN, nothing to do here
-  // if smaller than 1 and running js opts, we always need to force a coercion
-  // (0.001 will turn into 1e-3, which has no .)
-  if ((value.includes('.') || /[IN]/.test(value))) return value;
-  const e = value.indexOf('e');
-  if (e < 0) return value + '.0';
-  return value.substr(0, e) + '.0' + value.substr(e);
-}
-
-// ensures that a float type has either 5.5 (clearly a float) or +5 (float due to asm coercion)
-function asmEnsureFloat(value, type) {
-  if (!isNumber(value)) return value;
-  if (type === 'float') {
-    // normally ok to just emit Math.fround(0), but if the constant is large we
-    // may need a .0 (if it can't fit in an int)
-    if (value == 0) return 'Math.fround(0)';
-    value = ensureDot(value);
-    return 'Math.fround(' + value + ')';
-  }
-  if (type in Compiletime.FLOAT_TYPES) {
-    return ensureDot(value);
-  }
+// Legacy function, kept around in case there are extenal users.
+function asmEnsureFloat(value) {
   return value;
 }
 
-function asmCoercion(value, type, signedness) {
-  if (type == 'void') {
-    return value;
-  } else if (type in Compiletime.FLOAT_TYPES) {
-    if (isNumber(value)) {
-      return asmEnsureFloat(value, type);
-    } else {
-      if (signedness) {
-        if (signedness == 'u') {
-          value = '(' + value + ')>>>0';
-        } else {
-          value = '(' + value + ')|0';
-        }
-      }
-      if (type === 'float') {
-        return 'Math.fround(' + value + ')';
-      } else {
-        return '(+(' + value + '))';
-      }
-    }
-  } else {
-    if (signedness == 'u') {
-      return '((' + value + ')>>>0)';
-    }
-    return '((' + value + ')|0)';
-  }
+// Legacy function, kept around in case there are extenal users.
+function asmCoercion(value) {
+  return value;
 }
 
-function asmFloatToInt(x) {
-  return '(~~(' + x + '))';
+// Legacy function, kept around in case there are extenal users.
+function asmFloatToInt(value) {
+  return value;
 }
 
-function makeGetTempDouble(i, type, forSet) { // get an aliased part of the tempDouble temporary storage
+function makeGetTempDouble(i, type) { // get an aliased part of the tempDouble temporary storage
   // Cannot use makeGetValue because it uses us
   // this is a unique case where we *can* use HEAPF64
   const heap = getHeapForType(type);
@@ -560,13 +510,11 @@
   } else {
     offset = getHeapOffset(ptr, type);
   }
-  let ret = heap + '[' + offset + ']';
-  if (!forSet) ret = asmCoercion(ret, type);
-  return ret;
+  return heap + '[' + offset + ']';
 }
 
 function makeSetTempDouble(i, type, value) {
-  return makeGetTempDouble(i, type, true) + '=' + asmEnsureFloat(value, type);
+  return makeGetTempDouble(i, type) + '=' + value;
 }
 
 // See makeSetValue
@@ -607,9 +555,9 @@
         }
       } else {
         if (type == 'float') {
-          ret += 'copyTempFloat(' + asmCoercion(getFastValue(ptr, '+', pos), 'i32') + '),' + makeGetTempDouble(0, 'float');
+          ret += 'copyTempFloat(' + getFastValue(ptr, '+', pos) + '),' + makeGetTempDouble(0, 'float');
         } else {
-          ret += 'copyTempDouble(' + asmCoercion(getFastValue(ptr, '+', pos), 'i32') + '),' + makeGetTempDouble(0, 'double');
+          ret += 'copyTempDouble(' + getFastValue(ptr, '+', pos) + '),' + makeGetTempDouble(0, 'double');
         }
       }
       ret += ')';
@@ -620,7 +568,7 @@
   const offset = calcFastOffset(ptr, pos, noNeedFirst);
   if (SAFE_HEAP && !noSafe) {
     if (!ignore) {
-      return asmCoercion('SAFE_HEAP_LOAD' + ((type in Compiletime.FLOAT_TYPES) ? '_D' : '') + '(' + asmCoercion(offset, 'i32') + ', ' + Runtime.getNativeTypeSize(type) + ', ' + (!!unsigned + 0) + ')', type, unsigned ? 'u' : undefined);
+      return 'SAFE_HEAP_LOAD' + ((type in Compiletime.FLOAT_TYPES) ? '_D' : '') + '(' + offset + ', ' + Runtime.getNativeTypeSize(type) + ', ' + (!!unsigned + 0) + ')';
     }
   }
   return getHeapForType(type, unsigned) + '[' + getHeapOffset(offset, type) + ']';
@@ -702,7 +650,7 @@
   const offset = calcFastOffset(ptr, pos, noNeedFirst);
   if (SAFE_HEAP && !noSafe) {
     if (!ignore) {
-      return 'SAFE_HEAP_STORE' + ((type in Compiletime.FLOAT_TYPES) ? '_D' : '') + '(' + asmCoercion(offset, 'i32') + ', ' + asmCoercion(value, type) + ', ' + Runtime.getNativeTypeSize(type) + ')';
+      return 'SAFE_HEAP_STORE' + ((type in Compiletime.FLOAT_TYPES) ? '_D' : '') + '(' + offset + ', ' + value + ', ' + Runtime.getNativeTypeSize(type) + ')';
     }
   }
   return getHeapForType(type) + '[' + getHeapOffset(offset, type) + '] = ' + value;
@@ -894,7 +842,7 @@
 // case external JS library code uses this name.
 function makeStructuralReturn(values) {
   assert(values.length == 2);
-  return 'setTempRet0(' + values[1] + '); return ' + asmCoercion(values[0], 'i32');
+  return 'setTempRet0(' + values[1] + '); return ' + values[0];
 }
 
 function makeThrow(what) {
@@ -1005,14 +953,8 @@
   assert(false, 'bad type suffix: ' + suffix);
 }
 
-function ensureValidFFIType(type) {
-  return type === 'float' ? 'double' : type; // ffi does not tolerate float XXX
-}
-
-// FFI return values must arrive as doubles, and we can force them to floats afterwards
-function asmFFICoercion(value, type) {
-  value = asmCoercion(value, ensureValidFFIType(type));
-  if (type === 'float') value = asmCoercion(value, 'float');
+// Legacy function, kept around in case there are extenal users.
+function asmFFICoercion(value) {
   return value;
 }