Index: test/cctest/test-conversions.cc |
diff --git a/test/cctest/test-conversions.cc b/test/cctest/test-conversions.cc |
index b7881edcf6d3d81d5febb646989511f3b6ed10d1..c8b87d8989a56e0e3382880164a412c8d6f9285d 100644 |
--- a/test/cctest/test-conversions.cc |
+++ b/test/cctest/test-conversions.cc |
@@ -362,3 +362,57 @@ TEST(BitField64) { |
CHECK(x == MiddleBits::encode(3)); |
CHECK_EQ(3, MiddleBits::decode(x)); |
} |
+ |
+ |
+static void CheckNonArrayIndex(bool expected, const char* chars) { |
+ auto isolate = CcTest::i_isolate(); |
+ auto string = isolate->factory()->NewStringFromAsciiChecked(chars); |
+ CHECK_EQ(expected, IsNonArrayIndexInteger(*string)); |
+} |
+ |
+ |
+TEST(NonArrayIndexParsing) { |
+ auto isolate = CcTest::i_isolate(); |
+ HandleScope scope(isolate); |
+ CheckNonArrayIndex(false, "-"); |
+ CheckNonArrayIndex(false, "0"); |
+ CheckNonArrayIndex(false, "01"); |
+ CheckNonArrayIndex(false, "-01"); |
+ CheckNonArrayIndex(false, "4294967295"); |
+ CheckNonArrayIndex(false, "429496.7295"); |
+ CheckNonArrayIndex(false, "43s3"); |
+ CheckNonArrayIndex(true, "-0"); |
+ CheckNonArrayIndex(true, "-1"); |
+ CheckNonArrayIndex(true, "4294967296"); |
+ CheckNonArrayIndex(true, "-4294967296"); |
+ CheckNonArrayIndex( |
+ true, |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296"); |
+ CheckNonArrayIndex( |
+ true, |
+ "-429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296" |
+ "429496729642949672964294967296429496729642949672964294967296"); |
+} |