OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 #include "src/code-stub-assembler.h" | 4 #include "src/code-stub-assembler.h" |
5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" |
6 #include "src/frames-inl.h" | 6 #include "src/frames-inl.h" |
7 #include "src/frames.h" | 7 #include "src/frames.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 4599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4610 StoreFixedArrayElement(dictionary, index, name); | 4610 StoreFixedArrayElement(dictionary, index, name); |
4611 const int kNameToValueOffset = | 4611 const int kNameToValueOffset = |
4612 (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) * | 4612 (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) * |
4613 kPointerSize; | 4613 kPointerSize; |
4614 StoreFixedArrayElement(dictionary, index, value, UPDATE_WRITE_BARRIER, | 4614 StoreFixedArrayElement(dictionary, index, value, UPDATE_WRITE_BARRIER, |
4615 kNameToValueOffset); | 4615 kNameToValueOffset); |
4616 | 4616 |
4617 // Prepare details of the new property. | 4617 // Prepare details of the new property. |
4618 Variable var_details(this, MachineRepresentation::kTaggedSigned); | 4618 Variable var_details(this, MachineRepresentation::kTaggedSigned); |
4619 const int kInitialIndex = 0; | 4619 const int kInitialIndex = 0; |
4620 PropertyDetails d(NONE, DATA, kInitialIndex, PropertyCellType::kNoCell); | 4620 PropertyDetails d(kData, NONE, kInitialIndex, PropertyCellType::kNoCell); |
4621 enum_index = | 4621 enum_index = |
4622 SmiShl(enum_index, PropertyDetails::DictionaryStorageField::kShift); | 4622 SmiShl(enum_index, PropertyDetails::DictionaryStorageField::kShift); |
4623 STATIC_ASSERT(kInitialIndex == 0); | 4623 STATIC_ASSERT(kInitialIndex == 0); |
4624 var_details.Bind(SmiOr(SmiConstant(d.AsSmi()), enum_index)); | 4624 var_details.Bind(SmiOr(SmiConstant(d.AsSmi()), enum_index)); |
4625 | 4625 |
4626 // Private names must be marked non-enumerable. | 4626 // Private names must be marked non-enumerable. |
4627 Label not_private(this, &var_details); | 4627 Label not_private(this, &var_details); |
4628 GotoUnless(IsSymbolMap(LoadMap(name)), ¬_private); | 4628 GotoUnless(IsSymbolMap(LoadMap(name)), ¬_private); |
4629 Node* flags = SmiToWord32(LoadObjectField(name, Symbol::kFlagsOffset)); | 4629 Node* flags = SmiToWord32(LoadObjectField(name, Symbol::kFlagsOffset)); |
4630 const int kPrivateMask = 1 << Symbol::kPrivateBit; | 4630 const int kPrivateMask = 1 << Symbol::kPrivateBit; |
(...skipping 3613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8244 StoreObjectFieldNoWriteBarrier(result, | 8244 StoreObjectFieldNoWriteBarrier(result, |
8245 PromiseReactionJobInfo::kDebugNameOffset, | 8245 PromiseReactionJobInfo::kDebugNameOffset, |
8246 SmiConstant(kDebugNotActive)); | 8246 SmiConstant(kDebugNotActive)); |
8247 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, | 8247 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, |
8248 context); | 8248 context); |
8249 return result; | 8249 return result; |
8250 } | 8250 } |
8251 | 8251 |
8252 } // namespace internal | 8252 } // namespace internal |
8253 } // namespace v8 | 8253 } // namespace v8 |
OLD | NEW |