| OLD | NEW |
| (Empty) |
| 1 | |
| 2 // Copyright 2017 the V8 project authors. All rights reserved. | |
| 3 // Use of this source code is governed by a BSD-style license that can be | |
| 4 // found in the LICENSE file. | |
| 5 | |
| 6 #include "src/code-stub-assembler.h" | |
| 7 | |
| 8 namespace v8 { | |
| 9 namespace internal { | |
| 10 | |
| 11 class ForInBuiltinsAssembler : public CodeStubAssembler { | |
| 12 public: | |
| 13 explicit ForInBuiltinsAssembler(compiler::CodeAssemblerState* state) | |
| 14 : CodeStubAssembler(state) {} | |
| 15 | |
| 16 std::tuple<Node*, Node*, Node*> EmitForInPrepare(Node* object, Node* context, | |
| 17 Label* call_runtime, | |
| 18 Label* nothing_to_iterate); | |
| 19 | |
| 20 Node* ForInFilter(Node* key, Node* object, Node* context); | |
| 21 | |
| 22 private: | |
| 23 // Get the enumerable length from |map| and return the result as a Smi. | |
| 24 Node* EnumLength(Node* map); | |
| 25 void CheckPrototypeEnumCache(Node* receiver, Node* map, Label* use_cache, | |
| 26 Label* use_runtime); | |
| 27 // Check the cache validity for |receiver|. Branch to |use_cache| if | |
| 28 // the cache is valid, otherwise branch to |use_runtime|. | |
| 29 void CheckEnumCache(Node* receiver, Label* use_cache, | |
| 30 Label* nothing_to_iterate, Label* use_runtime); | |
| 31 }; | |
| 32 | |
| 33 } // namespace internal | |
| 34 } // namespace v8 | |
| OLD | NEW |