mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-22 10:59:51 +03:00
LibJS: get_iterator_values() should pass Value to callback (not Value&)
Value& implies that the callback is expected/able to modify the value, which is not the case.
This commit is contained in:
parent
b4bfc3ed54
commit
d85eed585c
Notes:
sideshowbarker
2024-07-19 02:49:48 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/d85eed585ca
@ -163,7 +163,7 @@ Value CallExpression::execute(Interpreter& interpreter, GlobalObject& global_obj
|
||||
if (interpreter.exception())
|
||||
return {};
|
||||
if (m_arguments[i].is_spread) {
|
||||
get_iterator_values(global_object, value, [&](Value& iterator_value) {
|
||||
get_iterator_values(global_object, value, [&](Value iterator_value) {
|
||||
if (interpreter.exception())
|
||||
return IterationDecision::Break;
|
||||
arguments.append(iterator_value);
|
||||
@ -419,7 +419,7 @@ Value ForOfStatement::execute(Interpreter& interpreter, GlobalObject& global_obj
|
||||
if (interpreter.exception())
|
||||
return {};
|
||||
|
||||
get_iterator_values(global_object, rhs_result, [&](Value& value) {
|
||||
get_iterator_values(global_object, rhs_result, [&](Value value) {
|
||||
interpreter.set_variable(variable_name, value, global_object);
|
||||
last_value = interpreter.run(global_object, *m_body);
|
||||
if (interpreter.exception())
|
||||
@ -1652,7 +1652,7 @@ Value ArrayExpression::execute(Interpreter& interpreter, GlobalObject& global_ob
|
||||
return {};
|
||||
|
||||
if (element->is_spread_expression()) {
|
||||
get_iterator_values(global_object, value, [&](Value& iterator_value) {
|
||||
get_iterator_values(global_object, value, [&](Value iterator_value) {
|
||||
array->indexed_properties().append(iterator_value);
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
|
@ -108,7 +108,7 @@ JS_DEFINE_NATIVE_FUNCTION(ArrayConstructor::from)
|
||||
array->set_indexed_property_elements(move(elements));
|
||||
} else {
|
||||
// * iterable objects
|
||||
get_iterator_values(global_object, value, [&](Value& element) {
|
||||
get_iterator_values(global_object, value, [&](Value element) {
|
||||
if (interpreter.exception())
|
||||
return IterationDecision::Break;
|
||||
array->indexed_properties().append(element);
|
||||
|
@ -101,7 +101,7 @@ Value create_iterator_result_object(GlobalObject& global_object, Value value, bo
|
||||
return object;
|
||||
}
|
||||
|
||||
void get_iterator_values(GlobalObject& global_object, Value value, AK::Function<IterationDecision(Value&)> callback)
|
||||
void get_iterator_values(GlobalObject& global_object, Value value, AK::Function<IterationDecision(Value)> callback)
|
||||
{
|
||||
auto& interpreter = global_object.interpreter();
|
||||
|
||||
|
@ -41,6 +41,6 @@ Value create_iterator_result_object(GlobalObject&, Value value, bool done);
|
||||
Object* iterator_next(Object& iterator, Value value = {});
|
||||
void iterator_close(Object& iterator);
|
||||
|
||||
void get_iterator_values(GlobalObject&, Value value, AK::Function<IterationDecision(Value&)> callback);
|
||||
void get_iterator_values(GlobalObject&, Value value, AK::Function<IterationDecision(Value)> callback);
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user