diff --git a/Libraries/LibJS/Runtime/ConsoleObject.cpp b/Libraries/LibJS/Runtime/ConsoleObject.cpp index 8fb4194801..dce83985ab 100644 --- a/Libraries/LibJS/Runtime/ConsoleObject.cpp +++ b/Libraries/LibJS/Runtime/ConsoleObject.cpp @@ -32,7 +32,7 @@ namespace JS { ConsoleObject::ConsoleObject() { - put_native_function("log", [](Object*, Vector arguments) -> Value { + put_native_function("log", [](Object*, const Vector& arguments) -> Value { for (auto& argument : arguments) printf("%s ", argument.to_string().characters()); return js_undefined(); diff --git a/Libraries/LibJS/Runtime/Function.h b/Libraries/LibJS/Runtime/Function.h index 15854d1f1c..b10eef3ca7 100644 --- a/Libraries/LibJS/Runtime/Function.h +++ b/Libraries/LibJS/Runtime/Function.h @@ -35,7 +35,7 @@ class Function : public Object { public: virtual ~Function(); - virtual Value call(Interpreter&, Vector) = 0; + virtual Value call(Interpreter&, const Vector&) = 0; protected: Function(); diff --git a/Libraries/LibJS/Runtime/NativeFunction.cpp b/Libraries/LibJS/Runtime/NativeFunction.cpp index ba26635fda..a111a22c9b 100644 --- a/Libraries/LibJS/Runtime/NativeFunction.cpp +++ b/Libraries/LibJS/Runtime/NativeFunction.cpp @@ -30,7 +30,7 @@ namespace JS { -NativeFunction::NativeFunction(AK::Function)> native_function) +NativeFunction::NativeFunction(AK::Function&)> native_function) : m_native_function(move(native_function)) { } @@ -39,11 +39,11 @@ NativeFunction::~NativeFunction() { } -Value NativeFunction::call(Interpreter& interpreter, Vector arguments) +Value NativeFunction::call(Interpreter& interpreter, const Vector& arguments) { auto this_value = interpreter.this_value(); ASSERT(this_value.is_object()); - return m_native_function(this_value.as_object(), move(arguments)); + return m_native_function(this_value.as_object(), arguments); } } diff --git a/Libraries/LibJS/Runtime/NativeFunction.h b/Libraries/LibJS/Runtime/NativeFunction.h index 5c2a54d8f8..e2f79aafda 100644 --- a/Libraries/LibJS/Runtime/NativeFunction.h +++ b/Libraries/LibJS/Runtime/NativeFunction.h @@ -33,10 +33,10 @@ namespace JS { class NativeFunction final : public Function { public: - explicit NativeFunction(AK::Function)>); + explicit NativeFunction(AK::Function&)>); virtual ~NativeFunction() override; - virtual Value call(Interpreter&, Vector) override; + virtual Value call(Interpreter&, const Vector&) override; private: virtual bool is_native_function() const override { return true; } diff --git a/Libraries/LibJS/Runtime/ObjectPrototype.cpp b/Libraries/LibJS/Runtime/ObjectPrototype.cpp index 688a5025f5..e789abd2d3 100644 --- a/Libraries/LibJS/Runtime/ObjectPrototype.cpp +++ b/Libraries/LibJS/Runtime/ObjectPrototype.cpp @@ -37,7 +37,7 @@ ObjectPrototype::ObjectPrototype() { set_prototype(nullptr); - put_native_function("hasOwnProperty", [](Object* this_object, Vector arguments) -> Value { + put_native_function("hasOwnProperty", [](Object* this_object, const Vector& arguments) -> Value { ASSERT(this_object); if (arguments.is_empty()) return js_undefined(); diff --git a/Libraries/LibJS/Runtime/ScriptFunction.cpp b/Libraries/LibJS/Runtime/ScriptFunction.cpp index f8833a4ec6..62cb98f20e 100644 --- a/Libraries/LibJS/Runtime/ScriptFunction.cpp +++ b/Libraries/LibJS/Runtime/ScriptFunction.cpp @@ -40,7 +40,7 @@ ScriptFunction::~ScriptFunction() { } -Value ScriptFunction::call(Interpreter& interpreter, Vector argument_values) +Value ScriptFunction::call(Interpreter& interpreter, const Vector& argument_values) { Vector arguments; for (size_t i = 0; i < m_parameters.size(); ++i) { @@ -50,7 +50,7 @@ Value ScriptFunction::call(Interpreter& interpreter, Vector argument_valu value = argument_values[i]; arguments.append({ move(name), move(value) }); } - return interpreter.run(m_body, move(arguments), ScopeType::Function); + return interpreter.run(m_body, arguments, ScopeType::Function); } } diff --git a/Libraries/LibJS/Runtime/ScriptFunction.h b/Libraries/LibJS/Runtime/ScriptFunction.h index 76ac8e1b69..6643cbbfb5 100644 --- a/Libraries/LibJS/Runtime/ScriptFunction.h +++ b/Libraries/LibJS/Runtime/ScriptFunction.h @@ -38,7 +38,7 @@ public: const ScopeNode& body() const { return m_body; } const Vector& parameters() const { return m_parameters; }; - virtual Value call(Interpreter&, Vector) override; + virtual Value call(Interpreter&, const Vector&) override; private: virtual bool is_script_function() const final { return true; } diff --git a/Libraries/LibJS/Runtime/StringPrototype.cpp b/Libraries/LibJS/Runtime/StringPrototype.cpp index dabb8cccda..b888352f39 100644 --- a/Libraries/LibJS/Runtime/StringPrototype.cpp +++ b/Libraries/LibJS/Runtime/StringPrototype.cpp @@ -44,7 +44,7 @@ StringPrototype::StringPrototype() return Value((i32) static_cast(this_object)->primitive_string()->string().length()); }, nullptr); - put_native_function("charAt", [](Object* this_object, Vector arguments) -> Value { + put_native_function("charAt", [](Object* this_object, const Vector& arguments) -> Value { ASSERT(this_object); i32 index = 0; if (!arguments.is_empty()) @@ -55,7 +55,7 @@ StringPrototype::StringPrototype() return js_string(this_object->heap(), String::empty()); return js_string(this_object->heap(), underlying_string.substring(index, 1)); }); - put_native_function("repeat", [](Object* this_object, Vector arguments) -> Value { + put_native_function("repeat", [](Object* this_object, const Vector& arguments) -> Value { ASSERT(this_object->is_string_object()); if (arguments.is_empty()) return js_string(this_object->heap(), String::empty());