From 705e96568c54ab59b650fb70d3408ca339f0e0a6 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Wed, 12 Jul 2023 17:52:36 -0400 Subject: [PATCH] LibJS: Change error message for non-objects in GetIteratorFlattenable Matches other usages in e.g. Temporal now. --- Userland/Libraries/LibJS/Runtime/Iterator.cpp | 4 ++-- .../Libraries/LibJS/Tests/builtins/Iterator/Iterator.from.js | 4 ++-- .../Tests/builtins/Iterator/Iterator.prototype.flatMap.js | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/Iterator.cpp b/Userland/Libraries/LibJS/Runtime/Iterator.cpp index bcd0d7ec698..dc49d570215 100644 --- a/Userland/Libraries/LibJS/Runtime/Iterator.cpp +++ b/Userland/Libraries/LibJS/Runtime/Iterator.cpp @@ -46,7 +46,7 @@ ThrowCompletionOr get_iterator_flattenable(VM& vm, Value object, if (!object.is_object()) { // a. If stringHandling is reject-strings or obj is not a String, throw a TypeError exception. if (string_handling == StringHandling::RejectStrings || !object.is_string()) - return vm.throw_completion(ErrorType::NotAnObject, "obj"sv); + return vm.throw_completion(ErrorType::NotAnObject, TRY_OR_THROW_OOM(vm, object.to_string_without_side_effects())); } // 2. Let method be ? GetMethod(obj, @@iterator). @@ -67,7 +67,7 @@ ThrowCompletionOr get_iterator_flattenable(VM& vm, Value object, // 5. If iterator is not an Object, throw a TypeError exception. if (!iterator.is_object()) - return vm.throw_completion(ErrorType::NotAnObject, "iterator"sv); + return vm.throw_completion(ErrorType::NotAnObject, TRY_OR_THROW_OOM(vm, iterator.to_string_without_side_effects())); // 6. Return ? GetIteratorDirect(iterator). return TRY(get_iterator_direct(vm, iterator.as_object())); diff --git a/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.from.js b/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.from.js index 2f5a18e4abc..de45d8d2224 100644 --- a/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.from.js +++ b/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.from.js @@ -2,7 +2,7 @@ describe("errors", () => { test("called with non-Object", () => { expect(() => { Iterator.from(Symbol.hasInstance); - }).toThrowWithMessage(TypeError, "obj is not an object"); + }).toThrowWithMessage(TypeError, "Symbol(Symbol.hasInstance) is not an object"); }); test("@@iterator is not callable", () => { @@ -35,7 +35,7 @@ describe("errors", () => { expect(() => { Iterator.from(iterable); - }).toThrowWithMessage(TypeError, "iterator is not an object"); + }).toThrowWithMessage(TypeError, "Symbol(Symbol.hasInstance) is not an object"); }); }); diff --git a/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.prototype.flatMap.js b/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.prototype.flatMap.js index c42cb4499a6..495d42a1945 100644 --- a/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.prototype.flatMap.js +++ b/Userland/Libraries/LibJS/Tests/builtins/Iterator/Iterator.prototype.flatMap.js @@ -69,7 +69,7 @@ describe("errors", () => { expect(() => { const iterator = generator().flatMap(() => Symbol.hasInstance); iterator.next(); - }).toThrowWithMessage(TypeError, "obj is not an object"); + }).toThrowWithMessage(TypeError, "Symbol(Symbol.hasInstance) is not an object"); }); });