diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp index 93f1b583448..1b97d142a12 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp @@ -5070,6 +5070,7 @@ void generate_iterator_prototype_implementation(IDL::Interface const& interface, generator.set("name", ByteString::formatted("{}Iterator", interface.name)); generator.set("parent_name", interface.parent_name); generator.set("prototype_class", ByteString::formatted("{}IteratorPrototype", interface.name)); + generator.set("to_string_tag", ByteString::formatted("{} Iterator", interface.name)); generator.set("prototype_base_class", interface.prototype_base_class); generator.set("fully_qualified_name", ByteString::formatted("{}Iterator", interface.fully_qualified_name)); generator.set("possible_include_path", ByteString::formatted("{}Iterator", interface.name.replace("::"sv, "/"sv, ReplaceMode::All))); @@ -5111,7 +5112,7 @@ void @prototype_class@::initialize(JS::Realm& realm) auto& vm = this->vm(); Base::initialize(realm); define_native_function(realm, vm.names.next, next, 0, JS::Attribute::Writable | JS::Attribute::Enumerable | JS::Attribute::Configurable); - define_direct_property(vm.well_known_symbol_to_string_tag(), JS::PrimitiveString::create(vm, "Iterator"_string), JS::Attribute::Configurable); + define_direct_property(vm.well_known_symbol_to_string_tag(), JS::PrimitiveString::create(vm, "@to_string_tag@"_string), JS::Attribute::Configurable); } static JS::ThrowCompletionOr<@fully_qualified_name@*> impl_from(JS::VM& vm) diff --git a/Tests/LibWeb/Text/expected/URL/url-search-params-iterator-iterator.txt b/Tests/LibWeb/Text/expected/URL/url-search-params-iterator-iterator.txt index 935f423016f..a964313ce23 100644 --- a/Tests/LibWeb/Text/expected/URL/url-search-params-iterator-iterator.txt +++ b/Tests/LibWeb/Text/expected/URL/url-search-params-iterator-iterator.txt @@ -1,5 +1,5 @@ -[object Iterator] -[object Iterator] +[object URLSearchParams Iterator] +[object URLSearchParams Iterator] true hello 1 diff --git a/Tests/LibWeb/Text/expected/wpt-import/webidl/ecmascript-binding/default-iterator-object.txt b/Tests/LibWeb/Text/expected/wpt-import/webidl/ecmascript-binding/default-iterator-object.txt new file mode 100644 index 00000000000..94b42945299 --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/webidl/ecmascript-binding/default-iterator-object.txt @@ -0,0 +1,8 @@ +Harness status: OK + +Found 3 tests + +3 Pass +Pass Default iterator objects for an interface have the same prototype +Pass Object.prototype.toString returns correct value +Pass @@toStringTag has correct value from prototype \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/webidl/ecmascript-binding/default-iterator-object.html b/Tests/LibWeb/Text/input/wpt-import/webidl/ecmascript-binding/default-iterator-object.html new file mode 100644 index 00000000000..0d5565cb0cb --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/webidl/ecmascript-binding/default-iterator-object.html @@ -0,0 +1,27 @@ + + +Default iterator objects + + +