diff options
author | Myles Borins <mylesborins@google.com> | 2018-04-10 21:39:51 -0400 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2018-04-11 13:22:42 -0400 |
commit | 12a1b9b8049462e47181a298120243dc83e81c55 (patch) | |
tree | 8605276308c8b4e3597516961266bae1af57557a /deps/v8/src/builtins/builtins-bigint.cc | |
parent | 78cd8263354705b767ef8c6a651740efe4931ba0 (diff) | |
download | android-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.cc | 61 |
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( |