My Project
jsni-internal.h
1 // JavaScript Native Interface Release License.
2 //
3 // Copyright (c) 2015-2018 Alibaba Group. All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
12 // * Neither the name of the Alibaba Group nor the
13 // names of its contributors may be used to endorse or promote products
14 // derived from this software without specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 
27 #ifndef SRC_V8_JSNI_INTERNAL_H_
28 #define SRC_V8_JSNI_INTERNAL_H_
29 
30 #include "jsni.h"
31 #include "v8.h"
32 
33 #include <vector>
34 
35 namespace v8 {
36 
37 struct V8_EXPORT JSNIEnvExt : public _JSNIEnv {
38  static JSNIEnvExt* Create(Isolate* isolate);
39  Isolate* GetIsolate();
40 
41  explicit JSNIEnvExt(Isolate* isolate);
42  Isolate* const isolate_;
43  // To push/pop local frame.
44  std::vector<void*> stacked_local_scope;
45  // For error check.
46  int error_code;
47  JSNIErrorInfo last_error_info;
48  Persistent<Value> last_exception;
49 };
50 
51 } // namespace v8
52 
53 #endif // SRC_V8_JSNI_INTERNAL_H_
54 
JSNI environment structure.
Definition: jsni.h:949
Definition: jsni.h:152
Definition: jsni-env-ext.h:35