summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-bigint.cc
diff options
context:
space:
mode:
authorMyles Borins <mylesborins@google.com>2018-04-10 21:39:51 -0400
committerMyles Borins <mylesborins@google.com>2018-04-11 13:22:42 -0400
commit12a1b9b8049462e47181a298120243dc83e81c55 (patch)
tree8605276308c8b4e3597516961266bae1af57557a /deps/v8/src/builtins/builtins-bigint.cc
parent78cd8263354705b767ef8c6a651740efe4931ba0 (diff)
downloadandroid-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.tar.gz
android-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.tar.bz2
android-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.zip
deps: update V8 to 6.6.346.23
PR-URL: https://github.com/nodejs/node/pull/19201 Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/builtins/builtins-bigint.cc')
-rw-r--r--deps/v8/src/builtins/builtins-bigint.cc61
1 files changed, 19 insertions, 42 deletions
diff --git a/deps/v8/src/builtins/builtins-bigint.cc b/deps/v8/src/builtins/builtins-bigint.cc
index 6d9bb6e797..fdbd3937d4 100644
--- a/deps/v8/src/builtins/builtins-bigint.cc
+++ b/deps/v8/src/builtins/builtins-bigint.cc
@@ -36,33 +36,6 @@ BUILTIN(BigIntConstructor_ConstructStub) {
isolate->factory()->BigInt_string()));
}
-BUILTIN(BigIntParseInt) {
- HandleScope scope(isolate);
- Handle<Object> string = args.atOrUndefined(isolate, 1);
- Handle<Object> radix = args.atOrUndefined(isolate, 2);
-
- // Convert {string} to a String and flatten it.
- // Fast path: avoid back-and-forth conversion for Smi inputs.
- if (string->IsSmi() && radix->IsUndefined(isolate)) {
- RETURN_RESULT_OR_FAILURE(isolate, BigInt::FromNumber(isolate, string));
- }
- Handle<String> subject;
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, subject,
- Object::ToString(isolate, string));
- subject = String::Flatten(subject);
-
- // Convert {radix} to Int32.
- if (!radix->IsNumber()) {
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, radix, Object::ToNumber(radix));
- }
- int radix32 = DoubleToInt32(radix->Number());
- if (radix32 != 0 && (radix32 < 2 || radix32 > 36)) {
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate, NewSyntaxError(MessageTemplate::kToRadixFormatRange));
- }
- RETURN_RESULT_OR_FAILURE(isolate, BigIntParseInt(isolate, subject, radix32));
-}
-
BUILTIN(BigIntAsUintN) {
HandleScope scope(isolate);
Handle<Object> bits_obj = args.atOrUndefined(isolate, 1);
@@ -97,14 +70,6 @@ BUILTIN(BigIntAsIntN) {
return *BigInt::AsIntN(bits->Number(), bigint);
}
-BUILTIN(BigIntPrototypeToLocaleString) {
- HandleScope scope(isolate);
-
- // TODO(jkummerow): Implement.
-
- UNIMPLEMENTED();
-}
-
namespace {
MaybeHandle<BigInt> ThisBigIntValue(Isolate* isolate, Handle<Object> value,
@@ -127,18 +92,14 @@ MaybeHandle<BigInt> ThisBigIntValue(Isolate* isolate, Handle<Object> value,
BigInt);
}
-} // namespace
-
-BUILTIN(BigIntPrototypeToString) {
- HandleScope scope(isolate);
+Object* BigIntToStringImpl(Handle<Object> receiver, Handle<Object> radix,
+ Isolate* isolate, const char* builtin_name) {
// 1. Let x be ? thisBigIntValue(this value).
Handle<BigInt> x;
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, x,
- ThisBigIntValue(isolate, args.receiver(), "BigInt.prototype.toString"));
+ isolate, x, ThisBigIntValue(isolate, receiver, builtin_name));
// 2. If radix is not present, let radixNumber be 10.
// 3. Else if radix is undefined, let radixNumber be 10.
- Handle<Object> radix = args.atOrUndefined(isolate, 1);
int radix_number;
if (radix->IsUndefined(isolate)) {
radix_number = 10;
@@ -158,6 +119,22 @@ BUILTIN(BigIntPrototypeToString) {
RETURN_RESULT_OR_FAILURE(isolate, BigInt::ToString(x, radix_number));
}
+} // namespace
+
+BUILTIN(BigIntPrototypeToLocaleString) {
+ HandleScope scope(isolate);
+ Handle<Object> radix = isolate->factory()->undefined_value();
+ return BigIntToStringImpl(args.receiver(), radix, isolate,
+ "BigInt.prototype.toLocaleString");
+}
+
+BUILTIN(BigIntPrototypeToString) {
+ HandleScope scope(isolate);
+ Handle<Object> radix = args.atOrUndefined(isolate, 1);
+ return BigIntToStringImpl(args.receiver(), radix, isolate,
+ "BigInt.prototype.toString");
+}
+
BUILTIN(BigIntPrototypeValueOf) {
HandleScope scope(isolate);
RETURN_RESULT_OR_FAILURE(