Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index 677cfdd8aa9d90f6cc2864cda4ad15a18cfcef0f..ccf066357722d172ce2d38e978c32889fdf05501 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -2346,6 +2346,40 @@ BUILTIN(BooleanConstructor_ConstructStub) { |
} |
+// ES6 section 19.3.3.2 Boolean.prototype.toString ( ) |
+BUILTIN(BooleanPrototypeToString) { |
+ HandleScope scope(isolate); |
+ Handle<Object> receiver = args.receiver(); |
+ if (receiver->IsJSValue()) { |
+ receiver = handle(Handle<JSValue>::cast(receiver)->value(), isolate); |
+ } |
+ if (!receiver->IsBoolean()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError(MessageTemplate::kNotGeneric, |
+ isolate->factory()->NewStringFromAsciiChecked( |
+ "Boolean.prototype.toString"))); |
+ } |
+ return Handle<Oddball>::cast(receiver)->to_string(); |
+} |
+ |
+ |
+// ES6 section 19.3.3.3 Boolean.prototype.valueOf ( ) |
+BUILTIN(BooleanPrototypeValueOf) { |
+ HandleScope scope(isolate); |
+ Handle<Object> receiver = args.receiver(); |
+ if (receiver->IsJSValue()) { |
+ receiver = handle(Handle<JSValue>::cast(receiver)->value(), isolate); |
+ } |
+ if (!receiver->IsBoolean()) { |
+ THROW_NEW_ERROR_RETURN_FAILURE( |
+ isolate, NewTypeError(MessageTemplate::kNotGeneric, |
+ isolate->factory()->NewStringFromAsciiChecked( |
+ "Boolean.prototype.valueOf"))); |
+ } |
+ return *receiver; |
+} |
+ |
+ |
// ----------------------------------------------------------------------------- |
// ES6 section 20.3 Date Objects |