Index: src/builtins/builtins-regexp-gen.cc |
diff --git a/src/builtins/builtins-regexp-gen.cc b/src/builtins/builtins-regexp-gen.cc |
index dc114063d791fe3065c447f79183762e09ee1e1f..32aa2ce0d79bf20b5ff49766eaf9e675621679ce 100644 |
--- a/src/builtins/builtins-regexp-gen.cc |
+++ b/src/builtins/builtins-regexp-gen.cc |
@@ -733,16 +733,10 @@ void RegExpBuiltinsAssembler::BranchIfFastRegExp(Node* const context, |
Node* RegExpBuiltinsAssembler::IsFastRegExp(Node* const context, |
Node* const object) { |
- return IsFastRegExp(context, object, LoadMap(object)); |
-} |
- |
-Node* RegExpBuiltinsAssembler::IsFastRegExp(Node* const context, |
- Node* const object, |
- Node* const map) { |
Label yup(this), nope(this), out(this); |
VARIABLE(var_result, MachineRepresentation::kWord32); |
- BranchIfFastRegExp(context, object, map, &yup, &nope); |
+ BranchIfFastRegExp(context, object, LoadMap(object), &yup, &nope); |
BIND(&yup); |
var_result.Bind(Int32Constant(1)); |
@@ -784,16 +778,16 @@ TF_BUILTIN(RegExpPrototypeExec, RegExpBuiltinsAssembler) { |
Node* const context = Parameter(Descriptor::kContext); |
// Ensure {maybe_receiver} is a JSRegExp. |
- Node* const regexp_map = ThrowIfNotInstanceType( |
- context, maybe_receiver, JS_REGEXP_TYPE, "RegExp.prototype.exec"); |
+ ThrowIfNotInstanceType(context, maybe_receiver, JS_REGEXP_TYPE, |
+ "RegExp.prototype.exec"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
Node* const string = ToString(context, maybe_string); |
Label if_isfastpath(this), if_isslowpath(this); |
- Branch(IsFastRegExpNoPrototype(context, receiver, regexp_map), &if_isfastpath, |
- &if_isslowpath); |
+ Branch(IsFastRegExpNoPrototype(context, receiver, LoadMap(receiver)), |
+ &if_isfastpath, &if_isslowpath); |
BIND(&if_isfastpath); |
{ |
@@ -1498,16 +1492,17 @@ TF_BUILTIN(RegExpPrototypeTest, RegExpBuiltinsAssembler) { |
Node* const context = Parameter(Descriptor::kContext); |
// Ensure {maybe_receiver} is a JSReceiver. |
- Node* const map = ThrowIfNotJSReceiver( |
- context, maybe_receiver, MessageTemplate::kIncompatibleMethodReceiver, |
- "RegExp.prototype.test"); |
+ ThrowIfNotJSReceiver(context, maybe_receiver, |
+ MessageTemplate::kIncompatibleMethodReceiver, |
+ "RegExp.prototype.test"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
Node* const string = ToString(context, maybe_string); |
Label fast_path(this), slow_path(this); |
- BranchIfFastRegExp(context, receiver, map, &fast_path, &slow_path); |
+ BranchIfFastRegExp(context, receiver, LoadMap(receiver), &fast_path, |
+ &slow_path); |
BIND(&fast_path); |
{ |
@@ -1908,16 +1903,17 @@ TF_BUILTIN(RegExpPrototypeMatch, RegExpBuiltinsAssembler) { |
Node* const context = Parameter(Descriptor::kContext); |
// Ensure {maybe_receiver} is a JSReceiver. |
- Node* const map = ThrowIfNotJSReceiver( |
- context, maybe_receiver, MessageTemplate::kIncompatibleMethodReceiver, |
- "RegExp.prototype.@@match"); |
+ ThrowIfNotJSReceiver(context, maybe_receiver, |
+ MessageTemplate::kIncompatibleMethodReceiver, |
+ "RegExp.prototype.@@match"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
Node* const string = ToString(context, maybe_string); |
Label fast_path(this), slow_path(this); |
- BranchIfFastRegExp(context, receiver, map, &fast_path, &slow_path); |
+ BranchIfFastRegExp(context, receiver, LoadMap(receiver), &fast_path, |
+ &slow_path); |
BIND(&fast_path); |
RegExpPrototypeMatchBody(context, receiver, string, true); |
@@ -2036,16 +2032,17 @@ TF_BUILTIN(RegExpPrototypeSearch, RegExpBuiltinsAssembler) { |
Node* const context = Parameter(Descriptor::kContext); |
// Ensure {maybe_receiver} is a JSReceiver. |
- Node* const map = ThrowIfNotJSReceiver( |
- context, maybe_receiver, MessageTemplate::kIncompatibleMethodReceiver, |
- "RegExp.prototype.@@search"); |
+ ThrowIfNotJSReceiver(context, maybe_receiver, |
+ MessageTemplate::kIncompatibleMethodReceiver, |
+ "RegExp.prototype.@@search"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
Node* const string = ToString(context, maybe_string); |
Label fast_path(this), slow_path(this); |
- BranchIfFastRegExp(context, receiver, map, &fast_path, &slow_path); |
+ BranchIfFastRegExp(context, receiver, LoadMap(receiver), &fast_path, |
+ &slow_path); |
BIND(&fast_path); |
RegExpPrototypeSearchBodyFast(context, receiver, string); |
@@ -2373,16 +2370,16 @@ TF_BUILTIN(RegExpPrototypeSplit, RegExpBuiltinsAssembler) { |
Node* const context = Parameter(Descriptor::kContext); |
// Ensure {maybe_receiver} is a JSReceiver. |
- Node* const map = ThrowIfNotJSReceiver( |
- context, maybe_receiver, MessageTemplate::kIncompatibleMethodReceiver, |
- "RegExp.prototype.@@split"); |
+ ThrowIfNotJSReceiver(context, maybe_receiver, |
+ MessageTemplate::kIncompatibleMethodReceiver, |
+ "RegExp.prototype.@@split"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
Node* const string = ToString(context, maybe_string); |
Label stub(this), runtime(this, Label::kDeferred); |
- BranchIfFastRegExp(context, receiver, map, &stub, &runtime); |
+ BranchIfFastRegExp(context, receiver, LoadMap(receiver), &stub, &runtime); |
BIND(&stub); |
Return(CallBuiltin(Builtins::kRegExpSplit, context, receiver, string, |
@@ -2804,9 +2801,9 @@ TF_BUILTIN(RegExpPrototypeReplace, RegExpBuiltinsAssembler) { |
// } |
// Ensure {maybe_receiver} is a JSReceiver. |
- Node* const map = ThrowIfNotJSReceiver( |
- context, maybe_receiver, MessageTemplate::kIncompatibleMethodReceiver, |
- "RegExp.prototype.@@replace"); |
+ ThrowIfNotJSReceiver(context, maybe_receiver, |
+ MessageTemplate::kIncompatibleMethodReceiver, |
+ "RegExp.prototype.@@replace"); |
Node* const receiver = maybe_receiver; |
// Convert {maybe_string} to a String. |
@@ -2814,7 +2811,7 @@ TF_BUILTIN(RegExpPrototypeReplace, RegExpBuiltinsAssembler) { |
// Fast-path checks: 1. Is the {receiver} an unmodified JSRegExp instance? |
Label stub(this), runtime(this, Label::kDeferred); |
- BranchIfFastRegExp(context, receiver, map, &stub, &runtime); |
+ BranchIfFastRegExp(context, receiver, LoadMap(receiver), &stub, &runtime); |
BIND(&stub); |
Return(CallBuiltin(Builtins::kRegExpReplace, context, receiver, string, |