8019482: Number("0x0.0p0") should evaluate to NaN
Reviewed-by: lagergren
This commit is contained in:
parent
1a074a8b66
commit
135ccaceef
@ -30,10 +30,7 @@ import static jdk.nashorn.internal.lookup.Lookup.MH;
|
||||
|
||||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import jdk.nashorn.api.scripting.NashornException;
|
||||
import jdk.nashorn.internal.codegen.CompilerConstants;
|
||||
import jdk.nashorn.internal.lookup.MethodHandleFactory;
|
||||
import jdk.nashorn.internal.objects.annotations.Attribute;
|
||||
import jdk.nashorn.internal.objects.annotations.Constructor;
|
||||
@ -41,7 +38,6 @@ import jdk.nashorn.internal.objects.annotations.Function;
|
||||
import jdk.nashorn.internal.objects.annotations.Property;
|
||||
import jdk.nashorn.internal.objects.annotations.ScriptClass;
|
||||
import jdk.nashorn.internal.objects.annotations.Where;
|
||||
import jdk.nashorn.internal.runtime.ECMAErrors;
|
||||
import jdk.nashorn.internal.runtime.ECMAException;
|
||||
import jdk.nashorn.internal.runtime.JSType;
|
||||
import jdk.nashorn.internal.runtime.PropertyMap;
|
||||
@ -123,6 +119,7 @@ public final class NativeError extends ScriptObject {
|
||||
* Nashorn extension: Error.captureStackTrace. Capture stack trace at the point of call into the Error object provided.
|
||||
*
|
||||
* @param self self reference
|
||||
* @return undefined
|
||||
*/
|
||||
@Function(attributes = Attribute.NOT_ENUMERABLE, where = Where.CONSTRUCTOR)
|
||||
public static Object captureStackTrace(final Object self, final Object errorObj) {
|
||||
|
@ -51,7 +51,7 @@ public final class ECMAException extends NashornException {
|
||||
/** Field handle to the{@link ECMAException#thrown} field, so that it can be accessed from generated code */
|
||||
public static final FieldAccess THROWN = virtualField(ECMAException.class, "thrown", Object.class);
|
||||
|
||||
public static final String EXCEPTION_PROPERTY = "nashornException";
|
||||
private static final String EXCEPTION_PROPERTY = "nashornException";
|
||||
|
||||
/** Object thrown. */
|
||||
public final Object thrown;
|
||||
|
@ -911,7 +911,7 @@ public enum JSType {
|
||||
|
||||
for (int i = start; i < length ; i++) {
|
||||
if (digit(chars[i], radix) == -1) {
|
||||
break;
|
||||
return Double.NaN;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
|
41
nashorn/test/script/basic/JDK-8019482.js
Normal file
41
nashorn/test/script/basic/JDK-8019482.js
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* JDK-8019482: Number("0x0.0p0") should evaluate to NaN
|
||||
*
|
||||
* @test
|
||||
* @run
|
||||
*/
|
||||
|
||||
function checkHexLiteral(str) {
|
||||
if (! isNaN(Number(str))) {
|
||||
fail("Number(" + str + ") is not NaN");
|
||||
}
|
||||
}
|
||||
|
||||
checkHexLiteral("0x0.0");
|
||||
checkHexLiteral("0x0.0p");
|
||||
checkHexLiteral("0x12tu");
|
||||
checkHexLiteral("0x12.2e22");
|
||||
checkHexLiteral("0xtu");
|
Loading…
Reference in New Issue
Block a user