| Index: src/compiler/js-typed-lowering.cc
|
| diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc
|
| index 6518217b0809a5df87822bb3a105cf25f7f5e9d4..522be4ec46fa6f1899d80613f02595704959b10d 100644
|
| --- a/src/compiler/js-typed-lowering.cc
|
| +++ b/src/compiler/js-typed-lowering.cc
|
| @@ -1254,6 +1254,9 @@ Reduction JSTypedLowering::ReduceJSStoreProperty(Node* node) {
|
| Node* value = NodeProperties::GetValueInput(node, 2);
|
| Type* key_type = NodeProperties::GetType(key);
|
| Type* value_type = NodeProperties::GetType(value);
|
| +
|
| + if (!value_type->Is(Type::PlainPrimitive())) return NoChange();
|
| +
|
| HeapObjectMatcher mbase(base);
|
| if (mbase.HasValue() && mbase.Value()->IsJSTypedArray()) {
|
| Handle<JSTypedArray> const array =
|
| @@ -1281,12 +1284,8 @@ Reduction JSTypedLowering::ReduceJSStoreProperty(Node* node) {
|
| if (number_reduction.Changed()) {
|
| value = number_reduction.replacement();
|
| } else {
|
| - Node* frame_state_for_to_number =
|
| - NodeProperties::FindFrameStateBefore(node);
|
| - value = effect =
|
| - graph()->NewNode(javascript()->ToNumber(), value, context,
|
| - frame_state_for_to_number, effect, control);
|
| - control = graph()->NewNode(common()->IfSuccess(), value);
|
| + value =
|
| + graph()->NewNode(simplified()->PlainPrimitiveToNumber(), value);
|
| }
|
| }
|
| // Check if we can avoid the bounds check.
|
|
|