From 615903dbf5b67cc590a51acc28caa6bc867439e3 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Mon, 22 Sep 2014 19:58:08 +0400 Subject: [PATCH] Fix call expression without args bytecode generation --- src/liboptimizer/optimizer-passes.c | 35 ++--------------------------- tests/jerry/empty_varg.js | 15 +++++++++++++ 2 files changed, 17 insertions(+), 33 deletions(-) create mode 100644 tests/jerry/empty_varg.js diff --git a/src/liboptimizer/optimizer-passes.c b/src/liboptimizer/optimizer-passes.c index 97036685d..4fa90866f 100644 --- a/src/liboptimizer/optimizer-passes.c +++ b/src/liboptimizer/optimizer-passes.c @@ -21,39 +21,8 @@ #define NAME_TO_ID(op) (__op__idx_##op) -/* Reorder bytecode like - - call_n ... - assignment ... + - var_?_end - - to - - assignment ... + - call_n ... - var_?_end - */ -static void -optimize_calls (opcode_t *opcodes) -{ - opcode_t *current_opcode; - - for (current_opcode = opcodes; - current_opcode->op_idx != NAME_TO_ID (exitval); - current_opcode++) - { - if (current_opcode->op_idx == NAME_TO_ID (call_n) - && (current_opcode + 1)->op_idx == NAME_TO_ID (assignment)) - { - opcode_t temp = *current_opcode; - *current_opcode = *(current_opcode + 1); - *(current_opcode + 1) = temp; - } - } -} - void -optimizer_run_passes (opcode_t *opcodes) +optimizer_run_passes (opcode_t *opcodes __unused) { - optimize_calls (opcodes); + FIXME (/*Write optimizer when postparser will be ready. */) } diff --git a/tests/jerry/empty_varg.js b/tests/jerry/empty_varg.js new file mode 100644 index 000000000..7e59b4324 --- /dev/null +++ b/tests/jerry/empty_varg.js @@ -0,0 +1,15 @@ +// Copyright 2014 Samsung Electronics Co., Ltd. +// +// 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 a = Object(); \ No newline at end of file