v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
debug-property-iterator.h
Go to the documentation of this file.
1// Copyright 2018 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_DEBUG_DEBUG_PROPERTY_ITERATOR_H_
6#define V8_DEBUG_DEBUG_PROPERTY_ITERATOR_H_
7
9#include "include/v8-maybe.h"
10#include "include/v8-object.h"
13#include "src/handles/handles.h"
15
16namespace v8 {
17
18class Name;
19
20namespace internal {
21
22class JSReceiver;
23
25 public:
26 V8_WARN_UNUSED_RESULT static std::unique_ptr<DebugPropertyIterator> Create(
27 Isolate* isolate, DirectHandle<JSReceiver> receiver, bool skip_indices);
28 ~DebugPropertyIterator() override = default;
31
32 bool Done() const override;
34
35 v8::Local<v8::Name> name() const override;
36 bool is_native_accessor() override;
37 bool has_native_getter() override;
38 bool has_native_setter() override;
41
42 bool is_own() override;
43 bool is_array_index() override;
44
45 private:
47 bool skip_indices);
48
50 bool should_move_to_next_stage() const;
53 void AdvanceToPrototype();
55
58 enum {
64
68
71 bool is_own_ = true;
72 bool is_done_ = false;
73};
74} // namespace internal
75} // namespace v8
76
77#endif // V8_DEBUG_DEBUG_PROPERTY_ITERATOR_H_
~DebugPropertyIterator() override=default
V8_WARN_UNUSED_RESULT Maybe< bool > Advance() override
static V8_WARN_UNUSED_RESULT std::unique_ptr< DebugPropertyIterator > Create(Isolate *isolate, DirectHandle< JSReceiver > receiver, bool skip_indices)
DebugPropertyIterator & operator=(const DebugPropertyIterator &)=delete
V8_WARN_UNUSED_RESULT bool FillKeysForCurrentPrototypeAndStage()
v8::Local< v8::Name > name() const override
DebugPropertyIterator(const DebugPropertyIterator &)=delete
enum v8::internal::DebugPropertyIterator::@56 stage_
v8::Maybe< v8::debug::PropertyDescriptor > descriptor() override
v8::Maybe< v8::PropertyAttribute > attributes() override
V8_WARN_UNUSED_RESULT bool AdvanceInternal()
TNode< Object > receiver
#define V8_WARN_UNUSED_RESULT
Definition v8config.h:671