forked from ClearFoundry/ClearScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathV8ObjectImpl.h
More file actions
54 lines (39 loc) · 1.76 KB
/
Copy pathV8ObjectImpl.h
File metadata and controls
54 lines (39 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
#pragma once
namespace Microsoft {
namespace ClearScript {
namespace V8 {
//-------------------------------------------------------------------------
// V8ObjectImpl
//-------------------------------------------------------------------------
private ref class V8ObjectImpl : IV8Object
{
public:
V8ObjectImpl(V8ObjectHolder* pHolder, V8Value::Subtype subtype);
virtual Object^ GetProperty(String^ gcName);
virtual Object^ GetProperty(String^ gcName, [Out] Boolean% isCacheable);
virtual void SetProperty(String^ gcName, Object^ gcValue);
virtual bool DeleteProperty(String^ gcName);
virtual array<String^>^ GetPropertyNames();
virtual Object^ GetProperty(int index);
virtual void SetProperty(int index, Object^ gcValue);
virtual bool DeleteProperty(int index);
virtual array<int>^ GetPropertyIndices();
virtual Object^ Invoke(array<Object^>^ gcArgs, bool asConstructor);
virtual Object^ InvokeMethod(String^ gcName, array<Object^>^ gcArgs);
virtual bool IsArrayBufferOrView();
virtual V8ArrayBufferOrViewKind GetArrayBufferOrViewKind();
virtual V8ArrayBufferOrViewInfo^ GetArrayBufferOrViewInfo();
virtual void InvokeWithArrayBufferOrViewData(Action<IntPtr>^ gcAction);
SharedPtr<V8ObjectHolder> GetHolder();
V8Value::Subtype GetSubtype();
~V8ObjectImpl();
!V8ObjectImpl();
private:
static void ImportValues(array<Object^>^ gcValues, std::vector<V8Value>& importedValues);
Object^ m_gcLock;
SharedPtr<V8ObjectHolder>* m_pspHolder;
V8Value::Subtype m_Subtype;
};
}}}