diff --git a/jerry-core/ecma/base/ecma-helpers-string.c b/jerry-core/ecma/base/ecma-helpers-string.c index 0c4f2a7972..41a11120c7 100644 --- a/jerry-core/ecma/base/ecma-helpers-string.c +++ b/jerry-core/ecma/base/ecma-helpers-string.c @@ -2052,7 +2052,7 @@ ecma_string_get_utf8_length (const ecma_string_t *string_p) /**< ecma-string */ return (ecma_length_t) (long_string_p->long_utf8_string_length); } - return lit_get_utf8_length_of_cesu8_string ((const lit_utf8_byte_t *) (string_p + 1), + return lit_get_utf8_length_of_cesu8_string ((const lit_utf8_byte_t *) (long_string_p + 1), (lit_utf8_size_t) string_p->u.long_utf8_string_size); } default: diff --git a/tests/jerry/regression-test-issue-2451.js b/tests/jerry/regression-test-issue-2451.js new file mode 100644 index 0000000000..026db7a00b --- /dev/null +++ b/tests/jerry/regression-test-issue-2451.js @@ -0,0 +1,19 @@ +// Copyright JS Foundation and other contributors, http://js.foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +var src = "var a = 0; while(a) { switch(a) {" ; +for (var i = 0; i < 4000; i++) + src += "-Infinity" + i + "\u00a0\u00a01.2e3"; +src += "\udc00%f0%90%80%80\udc00"; +print(src); diff --git a/tests/jerry/regression-test-issue-2452.js b/tests/jerry/regression-test-issue-2452.js new file mode 100644 index 0000000000..40927d5843 --- /dev/null +++ b/tests/jerry/regression-test-issue-2452.js @@ -0,0 +1,19 @@ +// Copyright JS Foundation and other contributors, http://js.foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +var src = ""; +for (var i = 0; i < 4000; i++) + src += "\udc00%f0%90%80%80\udc00"; +src += "} }"; +print(src); diff --git a/tests/jerry/regression-test-issue-2453.js b/tests/jerry/regression-test-issue-2453.js new file mode 100644 index 0000000000..994a206a82 --- /dev/null +++ b/tests/jerry/regression-test-issue-2453.js @@ -0,0 +1,20 @@ +// Copyright JS Foundation and other contributors, http://js.foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +var src = ""; +for (var i = 0; i < 4000; i++) + src += 4 + i + ": a += a += a; break; "; + src += "\𝔺\ +\
"; +print(src);