From 294f2447456b986009a195d77fd3b9f3eeb8c6e3 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 29 Oct 2021 00:16:59 +0300 Subject: [PATCH] LibJS: Convert SymbolConstructor functions to ThrowCompletionOr --- .../LibJS/Runtime/SymbolConstructor.cpp | 16 +++++++--------- .../Libraries/LibJS/Runtime/SymbolConstructor.h | 4 ++-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/SymbolConstructor.cpp b/Userland/Libraries/LibJS/Runtime/SymbolConstructor.cpp index 4fefdea077..f62bf7841a 100644 --- a/Userland/Libraries/LibJS/Runtime/SymbolConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/SymbolConstructor.cpp @@ -24,8 +24,8 @@ void SymbolConstructor::initialize(GlobalObject& global_object) define_direct_property(vm.names.prototype, global_object.symbol_prototype(), 0); u8 attr = Attribute::Writable | Attribute::Configurable; - define_old_native_function(vm.names.for_, for_, 1, attr); - define_old_native_function(vm.names.keyFor, key_for, 1, attr); + define_native_function(vm.names.for_, for_, 1, attr); + define_native_function(vm.names.keyFor, key_for, 1, attr); #define __JS_ENUMERATE(SymbolName, snake_name) \ define_direct_property(vm.names.SymbolName, vm.well_known_symbol_##snake_name(), 0); @@ -54,20 +54,18 @@ ThrowCompletionOr SymbolConstructor::construct(FunctionObject&) } // 20.4.2.2 Symbol.for ( key ), https://tc39.es/ecma262/#sec-symbol.for -JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolConstructor::for_) +JS_DEFINE_NATIVE_FUNCTION(SymbolConstructor::for_) { - auto description = TRY_OR_DISCARD(vm.argument(0).to_string(global_object)); + auto description = TRY(vm.argument(0).to_string(global_object)); return global_object.vm().get_global_symbol(description); } // 20.4.2.6 Symbol.keyFor ( sym ), https://tc39.es/ecma262/#sec-symbol.keyfor -JS_DEFINE_OLD_NATIVE_FUNCTION(SymbolConstructor::key_for) +JS_DEFINE_NATIVE_FUNCTION(SymbolConstructor::key_for) { auto argument = vm.argument(0); - if (!argument.is_symbol()) { - vm.throw_exception(global_object, ErrorType::NotASymbol, argument.to_string_without_side_effects()); - return {}; - } + if (!argument.is_symbol()) + return vm.throw_completion(global_object, ErrorType::NotASymbol, argument.to_string_without_side_effects()); auto& symbol = argument.as_symbol(); if (symbol.is_global()) diff --git a/Userland/Libraries/LibJS/Runtime/SymbolConstructor.h b/Userland/Libraries/LibJS/Runtime/SymbolConstructor.h index e4cfaf568c..7888674ff5 100644 --- a/Userland/Libraries/LibJS/Runtime/SymbolConstructor.h +++ b/Userland/Libraries/LibJS/Runtime/SymbolConstructor.h @@ -24,8 +24,8 @@ public: private: virtual bool has_constructor() const override { return true; } - JS_DECLARE_OLD_NATIVE_FUNCTION(for_); - JS_DECLARE_OLD_NATIVE_FUNCTION(key_for); + JS_DECLARE_NATIVE_FUNCTION(for_); + JS_DECLARE_NATIVE_FUNCTION(key_for); }; }