summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/substr.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/substr.js')
-rw-r--r--deps/v8/test/mjsunit/substr.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/substr.js b/deps/v8/test/mjsunit/substr.js
index cab8b1bf6d..83929362a0 100644
--- a/deps/v8/test/mjsunit/substr.js
+++ b/deps/v8/test/mjsunit/substr.js
@@ -152,3 +152,22 @@ for (var i = 63; i >= 0; i--) {
assertEquals(xl - offset, z.length);
offset -= i;
}
+
+
+// Order of conversions.
+{
+ let log = [];
+ let string = {[Symbol.toPrimitive]() { log.push("this"); return "abc" }};
+ let start = {[Symbol.toPrimitive]() { log.push("start"); return 0 }};
+ let length = {[Symbol.toPrimitive]() { log.push("length"); return 1 }};
+ assertEquals("a", String.prototype.substr.call(string, start, length));
+ assertEquals(["this", "start", "length"], log);
+}
+{
+ let log = [];
+ let string = {[Symbol.toPrimitive]() { log.push("this"); return "abc" }};
+ let start = {[Symbol.toPrimitive]() { log.push("start"); return 0 }};
+ let length = {[Symbol.toPrimitive]() { log.push("length"); return 0 }};
+ assertEquals("", String.prototype.substr.call(string, start, length));
+ assertEquals(["this", "start", "length"], log);
+}