UNPKG

3.04 kBtext/x-cView Raw
1/*********************************************************************
2 * NAN - Native Abstractions for Node.js
3 *
4 * Copyright (c) 2021 NAN contributors
5 *
6 * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
7 ********************************************************************/
8
9#ifndef NAN_SCRIPTORIGIN_H_
10#define NAN_SCRIPTORIGIN_H_
11
12class ScriptOrigin : public v8::ScriptOrigin {
13 public:
14#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 9 || \
15 (V8_MAJOR_VERSION == 9 && (defined(V8_MINOR_VERSION) && (V8_MINOR_VERSION > 0\
16 || (V8_MINOR_VERSION == 0 && defined(V8_BUILD_NUMBER) \
17 && V8_BUILD_NUMBER >= 1)))))
18 explicit ScriptOrigin(v8::Local<v8::Value> name) :
19 v8::ScriptOrigin(v8::Isolate::GetCurrent(), name) {}
20
21 ScriptOrigin(v8::Local<v8::Value> name
22 , v8::Local<v8::Integer> line) :
23 v8::ScriptOrigin(v8::Isolate::GetCurrent()
24 , name
25 , To<int32_t>(line).FromMaybe(0)) {}
26
27 ScriptOrigin(v8::Local<v8::Value> name
28 , v8::Local<v8::Integer> line
29 , v8::Local<v8::Integer> column) :
30 v8::ScriptOrigin(v8::Isolate::GetCurrent()
31 , name
32 , To<int32_t>(line).FromMaybe(0)
33 , To<int32_t>(column).FromMaybe(0)) {}
34#elif defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 8 || \
35 (V8_MAJOR_VERSION == 8 && (defined(V8_MINOR_VERSION) && (V8_MINOR_VERSION > 9\
36 || (V8_MINOR_VERSION == 9 && defined(V8_BUILD_NUMBER) \
37 && V8_BUILD_NUMBER >= 45)))))
38 explicit ScriptOrigin(v8::Local<v8::Value> name) : v8::ScriptOrigin(name) {}
39
40 ScriptOrigin(v8::Local<v8::Value> name
41 , v8::Local<v8::Integer> line) :
42 v8::ScriptOrigin(name, To<int32_t>(line).FromMaybe(0)) {}
43
44 ScriptOrigin(v8::Local<v8::Value> name
45 , v8::Local<v8::Integer> line
46 , v8::Local<v8::Integer> column) :
47 v8::ScriptOrigin(name
48 , To<int32_t>(line).FromMaybe(0)
49 , To<int32_t>(column).FromMaybe(0)) {}
50#else
51 explicit ScriptOrigin(v8::Local<v8::Value> name) : v8::ScriptOrigin(name) {}
52
53 ScriptOrigin(v8::Local<v8::Value> name
54 , v8::Local<v8::Integer> line) : v8::ScriptOrigin(name, line) {}
55
56 ScriptOrigin(v8::Local<v8::Value> name
57 , v8::Local<v8::Integer> line
58 , v8::Local<v8::Integer> column) :
59 v8::ScriptOrigin(name, line, column) {}
60#endif
61
62#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 8 || \
63 (V8_MAJOR_VERSION == 8 && (defined(V8_MINOR_VERSION) && (V8_MINOR_VERSION > 9\
64 || (V8_MINOR_VERSION == 9 && defined(V8_BUILD_NUMBER) \
65 && V8_BUILD_NUMBER >= 45)))))
66 v8::Local<v8::Integer> ResourceLineOffset() const {
67 return New(LineOffset());
68 }
69
70 v8::Local<v8::Integer> ResourceColumnOffset() const {
71 return New(ColumnOffset());
72 }
73#endif
74};
75
76#endif // NAN_SCRIPTORIGIN_H_