diff options
Diffstat (limited to 'deps/v8/src/builtins/regexp-source.tq')
-rw-r--r-- | deps/v8/src/builtins/regexp-source.tq | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/deps/v8/src/builtins/regexp-source.tq b/deps/v8/src/builtins/regexp-source.tq new file mode 100644 index 0000000000..c1ce1c5e9a --- /dev/null +++ b/deps/v8/src/builtins/regexp-source.tq @@ -0,0 +1,30 @@ +// Copyright 2019 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include 'src/builtins/builtins-regexp-gen.h' + +namespace regexp { + + const kRegExpPrototypeSourceGetter: constexpr int31 + generates 'v8::Isolate::kRegExpPrototypeSourceGetter'; + + // ES6 21.2.5.10. + // ES #sec-get-regexp.prototype.source + transitioning javascript builtin RegExpPrototypeSourceGetter( + js-implicit context: Context, receiver: JSAny)(): JSAny { + typeswitch (receiver) { + case (receiver: JSRegExp): { + return receiver.source; + } + case (Object): { + } + } + if (!IsReceiverInitialRegExpPrototype(receiver)) { + const methodName: constexpr string = 'RegExp.prototype.source'; + ThrowTypeError(kRegExpNonRegExp, methodName); + } + IncrementUseCounter(context, SmiConstant(kRegExpPrototypeSourceGetter)); + return '(?:)'; + } +} |