## 🐛 Bug Report

JavascriptExecutor.executeScript() returns float numbers with e-notation as Long instead of Double

## To Reproduce

Object ret = ((JavascriptExecutor) driver).executeScript("return parseFloat('6.02214129e+23');");

## Expected behavior

ret has Double class with value 6.02214129e+23

## Actual behavior

ret has Long class with value 9223372036854775807

## Test script or set of commands reproducing this issue

See above, just one line

## Environment

OS: Windows10
Browser: Chrome, Firefox, Internet Explorer
Browser version: 75.0.3770.100, 68, 11 
Browser Driver version: ChromeDriver 75.0.3770.90, GeckoDriver 0.24, InternetExplorerDriver 3.14.0
Language Bindings version: Java 1.8.0_201
Selenium Grid version (if applicable): 3.141.59 

List<WebElement> items = (List<WebElement>) executeScript(
        "return document.getElementsByName('snack');");
    assertThat(items).isNotEmpty();
  }
  @Test
  public void testJavascriptStringHandlingShouldWorkAsExpected() {
    driver.get(pages.javascriptPage);
    String value = (String) executeScript("return '';");
    assertThat(value).isEqualTo("");
    value = (String) executeScript("return undefined;");
    assertThat(value).isNull();
    value = (String) executeScript("return ' '");
    assertThat(value).isEqualTo(" ");
  }
  @Test
  public void testShouldBeAbleToExecuteABigChunkOfJavascriptCode() throws IOException {
    driver.get(pages.javascriptPage);
    Path jqueryFile = InProject.locate("common/src/web/jquery-1.3.2.js");
    String jquery = new String(Files.readAllBytes(jqueryFile), US_ASCII);
    assertThat(jquery.length())
        .describedAs("The javascript code should be at least 50 KB.")
        .isGreaterThan(50000);
    
    executeScript(jquery);
  }
  @SuppressWarnings("unchecked")
  @Test
  public void testShouldBeAbleToExecuteScriptAndReturnElementsList() {
    driver.get(pages.formPage);
    String scriptToExec = "return document.getElementsByName('snack');";