## 🐛 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 

"last", "Doe")
    );
    Object result = executeScript(
        "return {foo:'bar', baz: ['a', 'b', 'c'], " +
        "person: {first: 'John',last: 'Doe'}};");
    assertThat(result).isInstanceOf(Map.class);
    Map<String, Object> map = (Map<String, Object>) result;
    assertThat(map.size()).isGreaterThanOrEqualTo(3);
    assertThat(map.get("foo")).isEqualTo("bar");
    assertThat((List<?>) map.get("baz")).isEqualTo((List<?>) expectedResult.get("baz"));
    Map<String, String> person = (Map<String, String>) map.get("person");
    assertThat(person.size()).isGreaterThanOrEqualTo(2);
    assertThat(person.get("first")).isEqualTo("John");
    assertThat(person.get("last")).isEqualTo("Doe");
  }
  @SuppressWarnings("unchecked")
  @Test
  @Ignore(IE)
  public void testShouldBeAbleToExecuteSimpleJavascriptAndReturnAComplexObject() {
    driver.get(pages.javascriptPage);
    Object result = executeScript("return window.location;");
    assertThat(result).isInstanceOf(Map.class);
    Map<String, Object> map = (Map<String, Object>) result;
    assertThat(map.get("protocol")).isEqualTo("http:");
    assertThat(map.get("href")).isEqualTo(pages.javascriptPage);
  }
  private static boolean compareLists(List<?> first, List<?> second) {
    if (first.size() != second.size()) {
      return false;
    }