aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/string-startswith.tq
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/string-startswith.tq')
-rw-r--r--deps/v8/src/builtins/string-startswith.tq16
1 files changed, 4 insertions, 12 deletions
diff --git a/deps/v8/src/builtins/string-startswith.tq b/deps/v8/src/builtins/string-startswith.tq
index 1f885a2afd..b03e67ecf5 100644
--- a/deps/v8/src/builtins/string-startswith.tq
+++ b/deps/v8/src/builtins/string-startswith.tq
@@ -8,23 +8,15 @@ namespace string {
extern macro RegExpBuiltinsAssembler::IsRegExp(implicit context:
Context)(Object): bool;
- // TODO(ryzokuken): Add RequireObjectCoercible to base.tq and update callsites
- macro RequireObjectCoercible(implicit context: Context)(argument: Object):
- Object {
- if (IsNullOrUndefined(argument)) {
- ThrowTypeError(kCalledOnNullOrUndefined, 'String.prototype.startsWith');
- }
- return argument;
- }
-
// https://tc39.github.io/ecma262/#sec-string.prototype.startswith
transitioning javascript builtin StringPrototypeStartsWith(
- context: Context, receiver: Object, ...arguments): Boolean {
+ js-implicit context: Context, receiver: Object)(...arguments): Boolean {
const searchString: Object = arguments[0];
const position: Object = arguments[1];
+ const kBuiltinName: constexpr string = 'String.prototype.startsWith';
// 1. Let O be ? RequireObjectCoercible(this value).
- const object: Object = RequireObjectCoercible(receiver);
+ const object: Object = RequireObjectCoercible(receiver, kBuiltinName);
// 2. Let S be ? ToString(O).
const string: String = ToString_Inline(context, object);
@@ -32,7 +24,7 @@ namespace string {
// 3. Let isRegExp be ? IsRegExp(searchString).
// 4. If isRegExp is true, throw a TypeError exception.
if (IsRegExp(searchString)) {
- ThrowTypeError(kFirstArgumentNotRegExp, 'String.prototype.startsWith');
+ ThrowTypeError(kFirstArgumentNotRegExp, kBuiltinName);
}
// 5. Let searchStr be ? ToString(searchString).