| Index: src/compiler/js-intrinsic-lowering.cc
 | 
| diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc
 | 
| index ebe2e4e72330e8101e546d6cef0ca3c1ce25397c..df56ce67b36835457d76c1601da671ae7e6e7979 100644
 | 
| --- a/src/compiler/js-intrinsic-lowering.cc
 | 
| +++ b/src/compiler/js-intrinsic-lowering.cc
 | 
| @@ -32,6 +32,8 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) {
 | 
|        return ReduceInlineIsInstanceType(node, JS_ARRAY_TYPE);
 | 
|      case Runtime::kInlineIsFunction:
 | 
|        return ReduceInlineIsInstanceType(node, JS_FUNCTION_TYPE);
 | 
| +    case Runtime::kInlineJSValueValue:
 | 
| +      return ReduceInlineJSValueValue(node);
 | 
|      case Runtime::kInlineConstructDouble:
 | 
|        return ReduceInlineConstructDouble(node);
 | 
|      case Runtime::kInlineDoubleLo:
 | 
| @@ -44,6 +46,8 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) {
 | 
|        return ReduceInlineMathFloor(node);
 | 
|      case Runtime::kInlineMathSqrt:
 | 
|        return ReduceInlineMathSqrt(node);
 | 
| +    case Runtime::kInlineStringLength:
 | 
| +      return ReduceInlineStringLength(node);
 | 
|      case Runtime::kInlineValueOf:
 | 
|        return ReduceInlineValueOf(node);
 | 
|      default:
 | 
| @@ -103,6 +107,19 @@ Reduction JSIntrinsicLowering::ReduceInlineIsNonNegativeSmi(Node* node) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +Reduction JSIntrinsicLowering::ReduceInlineJSValueValue(Node* node) {
 | 
| +  Node* value = NodeProperties::GetValueInput(node, 0);
 | 
| +  Node* effect = NodeProperties::GetEffectInput(node);
 | 
| +  Node* control = NodeProperties::GetControlInput(node);
 | 
| +
 | 
| +  Node* result =
 | 
| +      graph()->NewNode(simplified()->LoadField(AccessBuilder::ForValue()),
 | 
| +                       value, effect, control);
 | 
| +  NodeProperties::ReplaceWithValue(node, result);
 | 
| +  return Replace(value);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  Reduction JSIntrinsicLowering::ReduceInlineConstructDouble(Node* node) {
 | 
|    Node* high = NodeProperties::GetValueInput(node, 0);
 | 
|    Node* low = NodeProperties::GetValueInput(node, 1);
 | 
| @@ -177,6 +194,19 @@ Reduction JSIntrinsicLowering::ReduceInlineMathSqrt(Node* node) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +Reduction JSIntrinsicLowering::ReduceInlineStringLength(Node* node) {
 | 
| +  Node* value = NodeProperties::GetValueInput(node, 0);
 | 
| +  Node* effect = NodeProperties::GetEffectInput(node);
 | 
| +  Node* control = NodeProperties::GetControlInput(node);
 | 
| +
 | 
| +  Node* result = graph()->NewNode(
 | 
| +      simplified()->LoadField(AccessBuilder::ForStringLength()), value, effect,
 | 
| +      control);
 | 
| +  NodeProperties::ReplaceWithValue(node, result);
 | 
| +  return Replace(value);
 | 
| +}
 | 
| +
 | 
| +
 | 
|  Reduction JSIntrinsicLowering::ReduceInlineValueOf(Node* node) {
 | 
|    // if (%_IsSmi(value)) {
 | 
|    //   return value;
 | 
| 
 |