| Index: test/mjsunit/substr.js | 
| diff --git a/test/mjsunit/substr.js b/test/mjsunit/substr.js | 
| index cab8b1bf6dec00373ff13723ab71f2281ab0a494..83929362a0036c01ddf28e46f8f10606fc301819 100644 | 
| --- a/test/mjsunit/substr.js | 
| +++ b/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); | 
| +} | 
|  |