Merge V8 5.3.332.45.  DO NOT MERGE

Test: Manual

FPIIM-449

Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
index 6fb1c4b..06cdb3d 100644
--- a/test/cctest/interpreter/bytecode_expectations/ForOf.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
@@ -13,70 +13,52 @@
 "
 frame size: 16
 parameter count: 1
-bytecode array length: 347
+bytecode array length: 284
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(LdrUndefined), R(4),
                 B(LdaZero),
                 B(Star), R(3),
                 B(Mov), R(context), R(11),
                 B(Mov), R(context), R(12),
   /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
                 B(Star), R(14),
-  /*   48 E> */ B(LdaConstant), U8(1),
-                B(KeyedLoadIC), R(14), U8(3),
-                B(Star), R(13),
+                B(LdaConstant), U8(1),
+  /*   48 E> */ B(LdrKeyedProperty), R(14), U8(3), R(13),
   /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
-  /*   48 E> */ B(Star), R(1),
-  /*   45 S> */ B(Ldar), R(1),
-                B(Star), R(15),
-                B(LoadIC), R(15), U8(2), U8(7),
-                B(Star), R(14),
-  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
-  /*   45 E> */ B(Star), R(2),
-                B(Star), R(13),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(Star), R(1),
+  /*   45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
+  /*   45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalse), U8(11),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(3), U8(9),
-                B(JumpIfToBooleanTrue), U8(28),
+                B(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(22),
                 B(LdaSmi), U8(2),
                 B(Star), R(3),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(4), U8(11),
-                B(Star), R(0),
-                B(Ldar), R(4),
-  /*   34 E> */ B(StackCheck),
+                B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(7),
+  /*   34 E> */ B(StackCheck),
+                B(Mov), R(0), R(7),
                 B(LdaZero),
                 B(Star), R(3),
-                B(Jump), U8(-70),
-                B(Jump), U8(47),
+                B(Jump), U8(-48),
+                B(Jump), U8(41),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), R(15),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                 B(Star), R(12),
                 B(PushContext), R(8),
-                B(Ldar), R(3),
-                B(Star), R(13),
                 B(LdaSmi), U8(2),
-                B(TestEqualStrict), R(13),
+                B(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(13),
+                B(LdrContextSlot), R(context), U8(4), R(13),
                 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                 B(PopContext), R(8),
                 B(LdaSmi), U8(-1),
@@ -87,31 +69,21 @@
                 B(Star), R(9),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Star), R(11),
-                B(Ldar), R(3),
-                B(Star), R(12),
                 B(LdaZero),
-                B(TestEqualStrict), R(12),
-                B(JumpIfTrue), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(12),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(12),
+                B(TestEqualStrict), R(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalseConstant), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(12),
-                B(LoadIC), R(12), U8(6), U8(13),
-                B(Star), R(5),
-                B(Star), R(12),
+                B(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(12),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(12),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(12),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(12),
@@ -119,44 +91,36 @@
                 B(TestEqualStrict), R(12),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 B(Star), R(12),
                 B(LdaConstant), U8(8),
                 B(Star), R(13),
                 B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                 B(Throw),
                 B(Mov), R(context), R(12),
-                B(Ldar), R(5),
-                B(Star), R(13),
-                B(Ldar), R(1),
-                B(Star), R(14),
-                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
-                B(Jump), U8(30),
+                B(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), R(15),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                 B(Star), R(12),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Ldar), R(12),
                 B(PushContext), R(8),
                 B(PopContext), R(8),
-                B(Jump), U8(37),
-                B(Ldar), R(5),
-                B(Star), R(12),
-                B(Ldar), R(1),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
+                B(Jump), U8(27),
+                B(Mov), R(5), R(12),
+                B(Mov), R(1), R(13),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                 B(Star), R(6),
-                B(Star), R(12),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
                 B(JumpIfToBooleanFalse), U8(4),
-                B(Jump), U8(11),
-                B(Ldar), R(6),
-                B(Star), R(12),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
+                B(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(9),
@@ -177,12 +141,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [10, 152, 158],
-  [13, 105, 107],
-  [250, 263, 265],
+  [9, 122, 128],
+  [12, 81, 83],
+  [201, 211, 213],
 ]
 
 ---
@@ -192,74 +155,54 @@
 "
 frame size: 17
 parameter count: 1
-bytecode array length: 363
+bytecode array length: 297
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(7),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(Star), R(7),
+                B(LdrUndefined), R(4),
                 B(LdaZero),
                 B(Star), R(3),
                 B(Mov), R(context), R(12),
                 B(Mov), R(context), R(13),
-  /*   68 S> */ B(Ldar), R(7),
-                B(Star), R(15),
-  /*   68 E> */ B(LdaConstant), U8(1),
-                B(KeyedLoadIC), R(15), U8(3),
-                B(Star), R(14),
-  /*   68 E> */ B(Call), R(14), R(15), U8(1), U8(1),
-  /*   68 E> */ B(Star), R(1),
-  /*   65 S> */ B(Ldar), R(1),
-                B(Star), R(16),
-                B(LoadIC), R(16), U8(2), U8(7),
-                B(Star), R(15),
-  /*   65 E> */ B(Call), R(15), R(16), U8(1), U8(5),
-  /*   65 E> */ B(Star), R(2),
-                B(Star), R(14),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(14), U8(1),
+  /*   68 S> */ B(LdaConstant), U8(1),
+  /*   68 E> */ B(LdrKeyedProperty), R(7), U8(3), R(14),
+  /*   68 E> */ B(Call), R(14), R(7), U8(1), U8(1),
+                B(Star), R(1),
+  /*   65 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(15),
+  /*   65 E> */ B(Call), R(15), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   65 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalse), U8(11),
-                B(Ldar), R(2),
-                B(Star), R(14),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
-                B(Ldar), R(2),
-                B(Star), R(14),
-                B(LoadIC), R(14), U8(3), U8(9),
-                B(JumpIfToBooleanTrue), U8(32),
+                B(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(27),
                 B(LdaSmi), U8(2),
                 B(Star), R(3),
-                B(Ldar), R(2),
-                B(Star), R(14),
-                B(LoadIC), R(14), U8(4), U8(11),
-                B(Star), R(0),
-                B(Ldar), R(4),
-  /*   54 E> */ B(StackCheck),
+                B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(8),
-  /*   73 S> */ B(Star), R(11),
-                B(LdaZero),
+  /*   54 E> */ B(StackCheck),
+                B(Mov), R(0), R(8),
+  /*   73 S> */ B(LdaZero),
                 B(Star), R(10),
-                B(Jump), U8(63),
-                B(Jump), U8(-74),
-                B(Jump), U8(47),
+                B(Mov), R(0), R(11),
+                B(Jump), U8(57),
+                B(Jump), U8(-53),
+                B(Jump), U8(41),
                 B(Star), R(15),
                 B(LdaConstant), U8(5),
                 B(Star), R(14),
-                B(Ldar), R(closure),
-                B(Star), R(16),
+                B(Mov), R(closure), R(16),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
                 B(Star), R(13),
                 B(PushContext), R(9),
-                B(Ldar), R(3),
-                B(Star), R(14),
                 B(LdaSmi), U8(2),
-                B(TestEqualStrict), R(14),
+                B(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(14),
+                B(LdrContextSlot), R(context), U8(4), R(14),
                 B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
                 B(PopContext), R(9),
                 B(LdaSmi), U8(-1),
@@ -270,31 +213,21 @@
                 B(Star), R(10),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Star), R(12),
-                B(Ldar), R(3),
-                B(Star), R(13),
                 B(LdaZero),
-                B(TestEqualStrict), R(13),
-                B(JumpIfTrue), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(13),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(13),
+                B(TestEqualStrict), R(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalseConstant), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(6), U8(13),
-                B(Star), R(5),
-                B(Star), R(13),
+                B(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(13),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(13),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(13),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(13),
@@ -302,44 +235,36 @@
                 B(TestEqualStrict), R(13),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 B(Star), R(13),
                 B(LdaConstant), U8(8),
                 B(Star), R(14),
                 B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
                 B(Throw),
                 B(Mov), R(context), R(13),
-                B(Ldar), R(5),
-                B(Star), R(14),
-                B(Ldar), R(1),
-                B(Star), R(15),
-                B(CallRuntime), U16(Runtime::k_Call), R(14), U8(2),
-                B(Jump), U8(30),
+                B(Mov), R(5), R(14),
+                B(Mov), R(1), R(15),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(15),
                 B(LdaConstant), U8(5),
                 B(Star), R(14),
-                B(Ldar), R(closure),
-                B(Star), R(16),
+                B(Mov), R(closure), R(16),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
                 B(Star), R(13),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Ldar), R(13),
                 B(PushContext), R(9),
                 B(PopContext), R(9),
-                B(Jump), U8(37),
-                B(Ldar), R(5),
-                B(Star), R(13),
-                B(Ldar), R(1),
-                B(Star), R(14),
-                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(27),
+                B(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
                 B(Star), R(6),
-                B(Star), R(13),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
                 B(JumpIfToBooleanFalse), U8(4),
-                B(Jump), U8(11),
-                B(Ldar), R(6),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
+                B(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(10),
@@ -365,12 +290,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [14, 158, 164],
-  [17, 111, 113],
-  [257, 270, 272],
+  [13, 125, 131],
+  [16, 84, 86],
+  [205, 215, 217],
 ]
 
 ---
@@ -382,81 +306,60 @@
 "
 frame size: 16
 parameter count: 1
-bytecode array length: 369
+bytecode array length: 300
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(LdrUndefined), R(4),
                 B(LdaZero),
                 B(Star), R(3),
                 B(Mov), R(context), R(11),
                 B(Mov), R(context), R(12),
   /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
                 B(Star), R(14),
-  /*   48 E> */ B(LdaConstant), U8(1),
-                B(KeyedLoadIC), R(14), U8(3),
-                B(Star), R(13),
+                B(LdaConstant), U8(1),
+  /*   48 E> */ B(LdrKeyedProperty), R(14), U8(3), R(13),
   /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
-  /*   48 E> */ B(Star), R(1),
-  /*   45 S> */ B(Ldar), R(1),
-                B(Star), R(15),
-                B(LoadIC), R(15), U8(2), U8(7),
-                B(Star), R(14),
-  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
-  /*   45 E> */ B(Star), R(2),
-                B(Star), R(13),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(Star), R(1),
+  /*   45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
+  /*   45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalse), U8(11),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(3), U8(9),
-                B(JumpIfToBooleanTrue), U8(50),
+                B(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(38),
                 B(LdaSmi), U8(2),
                 B(Star), R(3),
-                B(Ldar), R(2),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(4), U8(11),
-                B(Star), R(0),
-                B(Ldar), R(4),
-  /*   34 E> */ B(StackCheck),
+                B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(7),
-  /*   66 S> */ B(Star), R(13),
-                B(LdaSmi), U8(10),
-  /*   72 E> */ B(TestEqual), R(13),
+  /*   34 E> */ B(StackCheck),
+                B(Mov), R(0), R(7),
+  /*   66 S> */ B(LdaSmi), U8(10),
+  /*   72 E> */ B(TestEqual), R(7),
                 B(JumpIfFalse), U8(4),
-  /*   79 S> */ B(Jump), U8(17),
-  /*   91 S> */ B(Ldar), R(7),
-                B(Star), R(13),
-                B(LdaSmi), U8(20),
-  /*   97 E> */ B(TestEqual), R(13),
+  /*   79 S> */ B(Jump), U8(13),
+  /*   91 S> */ B(LdaSmi), U8(20),
+  /*   97 E> */ B(TestEqual), R(7),
                 B(JumpIfFalse), U8(4),
   /*  104 S> */ B(Jump), U8(7),
                 B(LdaZero),
                 B(Star), R(3),
-                B(Jump), U8(-92),
-                B(Jump), U8(47),
+                B(Jump), U8(-64),
+                B(Jump), U8(41),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), R(15),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                 B(Star), R(12),
                 B(PushContext), R(8),
-                B(Ldar), R(3),
-                B(Star), R(13),
                 B(LdaSmi), U8(2),
-                B(TestEqualStrict), R(13),
+                B(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(13),
+                B(LdrContextSlot), R(context), U8(4), R(13),
                 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                 B(PopContext), R(8),
                 B(LdaSmi), U8(-1),
@@ -467,31 +370,21 @@
                 B(Star), R(9),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Star), R(11),
-                B(Ldar), R(3),
-                B(Star), R(12),
                 B(LdaZero),
-                B(TestEqualStrict), R(12),
-                B(JumpIfTrue), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(12),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(12),
+                B(TestEqualStrict), R(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalseConstant), U8(9),
-                B(Ldar), R(1),
-                B(Star), R(12),
-                B(LoadIC), R(12), U8(6), U8(13),
-                B(Star), R(5),
-                B(Star), R(12),
+                B(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(12),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(12),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(12),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(12),
@@ -499,44 +392,36 @@
                 B(TestEqualStrict), R(12),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 B(Star), R(12),
                 B(LdaConstant), U8(8),
                 B(Star), R(13),
                 B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
                 B(Throw),
                 B(Mov), R(context), R(12),
-                B(Ldar), R(5),
-                B(Star), R(13),
-                B(Ldar), R(1),
-                B(Star), R(14),
-                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
-                B(Jump), U8(30),
+                B(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), R(15),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
                 B(Star), R(12),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Ldar), R(12),
                 B(PushContext), R(8),
                 B(PopContext), R(8),
-                B(Jump), U8(37),
-                B(Ldar), R(5),
-                B(Star), R(12),
-                B(Ldar), R(1),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
+                B(Jump), U8(27),
+                B(Mov), R(5), R(12),
+                B(Mov), R(1), R(13),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
                 B(Star), R(6),
-                B(Star), R(12),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
                 B(JumpIfToBooleanFalse), U8(4),
-                B(Jump), U8(11),
-                B(Ldar), R(6),
-                B(Star), R(12),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
+                B(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(9),
@@ -557,12 +442,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [10, 174, 180],
-  [13, 127, 129],
-  [272, 285, 287],
+  [9, 138, 144],
+  [12, 97, 99],
+  [217, 227, 229],
 ]
 
 ---
@@ -572,78 +456,57 @@
 "
 frame size: 15
 parameter count: 1
-bytecode array length: 379
+bytecode array length: 308
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
                 B(Star), R(8),
-  /*   42 E> */ B(Star), R(6),
-                B(LdaUndefined),
-                B(Star), R(3),
+                B(Star), R(6),
+                B(LdrUndefined), R(3),
                 B(LdaZero),
                 B(Star), R(2),
                 B(Mov), R(context), R(10),
                 B(Mov), R(context), R(11),
   /*   77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
                 B(Star), R(13),
-  /*   77 E> */ B(LdaConstant), U8(2),
-                B(KeyedLoadIC), R(13), U8(3),
-                B(Star), R(12),
+                B(LdaConstant), U8(2),
+  /*   77 E> */ B(LdrKeyedProperty), R(13), U8(3), R(12),
   /*   77 E> */ B(Call), R(12), R(13), U8(1), U8(1),
-  /*   77 E> */ B(Star), R(0),
-  /*   74 S> */ B(Ldar), R(0),
-                B(Star), R(14),
-                B(LoadIC), R(14), U8(3), U8(7),
-                B(Star), R(13),
-  /*   74 E> */ B(Call), R(13), R(14), U8(1), U8(5),
-  /*   74 E> */ B(Star), R(1),
-                B(Star), R(12),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(Star), R(0),
+  /*   74 S> */ B(LdrNamedProperty), R(0), U8(3), U8(7), R(13),
+  /*   74 E> */ B(Call), R(13), R(0), U8(1), U8(5),
+                B(Star), R(1),
+  /*   74 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(1), U8(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalse), U8(11),
-                B(Ldar), R(1),
-                B(Star), R(12),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
-                B(Ldar), R(1),
-                B(Star), R(12),
-                B(LoadIC), R(12), U8(4), U8(9),
-                B(JumpIfToBooleanTrue), U8(42),
+                B(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1),
+                B(LdaNamedProperty), R(1), U8(4), U8(9),
+                B(JumpIfToBooleanTrue), U8(28),
                 B(LdaSmi), U8(2),
                 B(Star), R(2),
-  /*   67 E> */ B(Ldar), R(6),
-                B(Star), R(12),
-                B(Ldar), R(1),
-                B(Star), R(13),
-                B(LoadIC), R(13), U8(5), U8(11),
-                B(StoreICSloppy), R(12), U8(6), U8(13),
-                B(Ldar), R(3),
+  /*   67 E> */ B(LdaNamedProperty), R(1), U8(5), U8(11),
+                B(StaNamedPropertySloppy), R(6), U8(6), U8(13),
   /*   62 E> */ B(StackCheck),
-  /*   88 S> */ B(Ldar), R(6),
-                B(Star), R(12),
-  /*   96 E> */ B(LoadIC), R(12), U8(6), U8(15),
-                B(Star), R(9),
+  /*   88 S> */ B(Nop),
+  /*   96 E> */ B(LdrNamedProperty), R(6), U8(6), U8(15), R(9),
                 B(LdaZero),
                 B(Star), R(8),
-                B(Jump), U8(63),
-                B(Jump), U8(-84),
-                B(Jump), U8(47),
+                B(Jump), U8(57),
+                B(Jump), U8(-54),
+                B(Jump), U8(41),
                 B(Star), R(13),
                 B(LdaConstant), U8(7),
                 B(Star), R(12),
-                B(Ldar), R(closure),
-                B(Star), R(14),
+                B(Mov), R(closure), R(14),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
                 B(Star), R(11),
                 B(PushContext), R(7),
-                B(Ldar), R(2),
-                B(Star), R(12),
                 B(LdaSmi), U8(2),
-                B(TestEqualStrict), R(12),
+                B(TestEqualStrict), R(2),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(2),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(12),
+                B(LdrContextSlot), R(context), U8(4), R(12),
                 B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
                 B(PopContext), R(7),
                 B(LdaSmi), U8(-1),
@@ -654,31 +517,21 @@
                 B(Star), R(8),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Star), R(10),
-                B(Ldar), R(2),
-                B(Star), R(11),
                 B(LdaZero),
-                B(TestEqualStrict), R(11),
-                B(JumpIfTrue), U8(9),
-                B(Ldar), R(0),
-                B(Star), R(11),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(11),
+                B(TestEqualStrict), R(0),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalseConstant), U8(11),
-                B(Ldar), R(0),
-                B(Star), R(11),
-                B(LoadIC), R(11), U8(8), U8(17),
-                B(Star), R(4),
-                B(Star), R(11),
+                B(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(0), U8(8), U8(17), R(4),
                 B(LdaNull),
-                B(TestEqual), R(11),
+                B(TestEqual), R(4),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(2),
-                B(Star), R(11),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(11),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(2),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(4),
                 B(TypeOf),
                 B(Star), R(11),
@@ -686,44 +539,36 @@
                 B(TestEqualStrict), R(11),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 B(Star), R(11),
                 B(LdaConstant), U8(10),
                 B(Star), R(12),
                 B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
                 B(Throw),
                 B(Mov), R(context), R(11),
-                B(Ldar), R(4),
-                B(Star), R(12),
-                B(Ldar), R(0),
-                B(Star), R(13),
-                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
-                B(Jump), U8(30),
+                B(Mov), R(4), R(12),
+                B(Mov), R(0), R(13),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(13),
                 B(LdaConstant), U8(7),
                 B(Star), R(12),
-                B(Ldar), R(closure),
-                B(Star), R(14),
+                B(Mov), R(closure), R(14),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
                 B(Star), R(11),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
                 B(Ldar), R(11),
                 B(PushContext), R(7),
                 B(PopContext), R(7),
-                B(Jump), U8(37),
-                B(Ldar), R(4),
-                B(Star), R(11),
-                B(Ldar), R(0),
-                B(Star), R(12),
-                B(CallRuntime), U16(Runtime::k_Call), R(11), U8(2),
+                B(Jump), U8(27),
+                B(Mov), R(4), R(11),
+                B(Mov), R(0), R(12),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
                 B(Star), R(5),
-                B(Star), R(11),
-                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(11), U8(1),
+                B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
                 B(JumpIfToBooleanFalse), U8(4),
-                B(Jump), U8(11),
-                B(Ldar), R(5),
-                B(Star), R(11),
-                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
+                B(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(8),
@@ -751,11 +596,10 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [18, 174, 180],
-  [21, 127, 129],
-  [273, 286, 288],
+  [17, 136, 142],
+  [20, 95, 97],
+  [216, 226, 228],
 ]