From 409e1fec5f1c5c2bdd646bbf60812a845264965a Mon Sep 17 00:00:00 2001 From: Szilagyi Adam Date: Mon, 4 May 2020 15:08:14 +0200 Subject: [PATCH] Add missing index incrementation to ecma_builtin_string_object_raw (#3709) JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu --- jerry-core/ecma/builtin-objects/ecma-builtin-string.c | 1 + tests/jerry/es2015/string-raw.js | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c index 5067b86ce..7537fa937 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c @@ -235,6 +235,7 @@ ecma_builtin_string_object_raw (ecma_value_t this_arg, /**< 'this' argument */ /* 12.f-g */ if (next_index >= number_of_substitutions) { + next_index++; continue; } diff --git a/tests/jerry/es2015/string-raw.js b/tests/jerry/es2015/string-raw.js index 9f8093ad4..5a44a8d09 100644 --- a/tests/jerry/es2015/string-raw.js +++ b/tests/jerry/es2015/string-raw.js @@ -56,3 +56,9 @@ let str = String.raw({ assert(str === "foo5barJavaScriptbaz"); assert(String.raw({ raw: 'test' }, 0, 1, 2) === "t0e1s2t"); + +var get = []; +var raw = new Proxy({length: 2, 0: '', 1: ''}, { get: function(o, k) { get.push(k); return o[k]; }}); +var p = new Proxy({raw: raw}, { get: function(o, k) { get.push(k); return o[k]; }}); +String.raw(p); +assert(get + '' === "raw,length,0,1");