libv8 3.16.14.19-universal-darwin-17 → 6.2.414.42.1-universal-darwin-17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libv8/arch.rb +10 -33
  3. data/ext/libv8/location.rb +15 -7
  4. data/ext/libv8/paths.rb +3 -3
  5. data/lib/libv8/version.rb +1 -1
  6. data/vendor/v8/include/libplatform/libplatform-export.h +29 -0
  7. data/vendor/v8/include/libplatform/libplatform.h +83 -0
  8. data/vendor/v8/include/libplatform/v8-tracing.h +284 -0
  9. data/vendor/v8/include/v8-debug.h +104 -257
  10. data/vendor/v8/include/v8-inspector-protocol.h +13 -0
  11. data/vendor/v8/include/v8-inspector.h +267 -0
  12. data/vendor/v8/include/v8-platform.h +241 -0
  13. data/vendor/v8/include/v8-profiler.h +514 -185
  14. data/vendor/v8/include/v8-testing.h +5 -62
  15. data/vendor/v8/include/v8-util.h +655 -0
  16. data/vendor/v8/include/v8-value-serializer-version.h +24 -0
  17. data/vendor/v8/include/v8-version-string.h +33 -0
  18. data/vendor/v8/include/v8-version.h +20 -0
  19. data/vendor/v8/include/v8.h +8944 -3504
  20. data/vendor/v8/include/v8config.h +417 -0
  21. data/vendor/v8/out/x64.release/libv8_base.a +0 -0
  22. data/vendor/v8/out/x64.release/libv8_builtins_generators.a +0 -0
  23. data/vendor/v8/out/x64.release/libv8_builtins_setup.a +0 -0
  24. data/vendor/v8/out/x64.release/libv8_libbase.a +0 -0
  25. data/vendor/v8/out/x64.release/libv8_libplatform.a +0 -0
  26. data/vendor/v8/out/x64.release/libv8_libsampler.a +0 -0
  27. data/vendor/v8/out/x64.release/libv8_nosnapshot.a +0 -0
  28. data/vendor/v8/out/x64.release/libv8_snapshot.a +0 -0
  29. metadata +22 -23
  30. data/vendor/v8/include/v8-preparser.h +0 -118
  31. data/vendor/v8/include/v8stdint.h +0 -54
  32. data/vendor/v8/out/x64.release/libpreparser_lib.a +0 -0
@@ -1,71 +1,16 @@
1
1
  // Copyright 2008 the V8 project authors. All rights reserved.
2
- // Redistribution and use in source and binary forms, with or without
3
- // modification, are permitted provided that the following conditions are
4
- // met:
5
- //
6
- // * Redistributions of source code must retain the above copyright
7
- // notice, this list of conditions and the following disclaimer.
8
- // * Redistributions in binary form must reproduce the above
9
- // copyright notice, this list of conditions and the following
10
- // disclaimer in the documentation and/or other materials provided
11
- // with the distribution.
12
- // * Neither the name of Google Inc. nor the names of its
13
- // contributors may be used to endorse or promote products derived
14
- // from this software without specific prior written permission.
15
- //
16
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
27
4
 
28
5
  #ifndef V8_V8_DEBUG_H_
29
6
  #define V8_V8_DEBUG_H_
30
7
 
31
- #include "v8.h"
32
-
33
- #ifdef _WIN32
34
- typedef int int32_t;
35
- typedef unsigned int uint32_t;
36
- typedef unsigned short uint16_t; // NOLINT
37
- typedef long long int64_t; // NOLINT
38
-
39
- // Setup for Windows DLL export/import. See v8.h in this directory for
40
- // information on how to build/use V8 as a DLL.
41
- #if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
42
- #error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
43
- build configuration to ensure that at most one of these is set
44
- #endif
45
-
46
- #ifdef BUILDING_V8_SHARED
47
- #define EXPORT __declspec(dllexport)
48
- #elif USING_V8_SHARED
49
- #define EXPORT __declspec(dllimport)
50
- #else
51
- #define EXPORT
52
- #endif
53
-
54
- #else // _WIN32
55
-
56
- // Setup for Linux shared library export. See v8.h in this directory for
57
- // information on how to build/use V8 as shared library.
58
- #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
59
- #define EXPORT __attribute__ ((visibility("default")))
60
- #else // defined(__GNUC__) && (__GNUC__ >= 4)
61
- #define EXPORT
62
- #endif // defined(__GNUC__) && (__GNUC__ >= 4)
63
-
64
- #endif // _WIN32
65
-
8
+ #include "v8.h" // NOLINT(build/include)
66
9
 
67
10
  /**
68
- * Debugger support for the V8 JavaScript engine.
11
+ * ATTENTION: The debugger API exposed by this file is deprecated and will be
12
+ * removed by the end of 2017. Please use the V8 inspector declared
13
+ * in include/v8-inspector.h instead.
69
14
  */
70
15
  namespace v8 {
71
16
 
@@ -73,15 +18,12 @@ namespace v8 {
73
18
  enum DebugEvent {
74
19
  Break = 1,
75
20
  Exception = 2,
76
- NewFunction = 3,
77
- BeforeCompile = 4,
78
- AfterCompile = 5,
79
- ScriptCollected = 6,
80
- BreakForCommand = 7
21
+ AfterCompile = 3,
22
+ CompileError = 4,
23
+ AsyncTaskEvent = 5,
81
24
  };
82
25
 
83
-
84
- class EXPORT Debug {
26
+ class V8_EXPORT Debug {
85
27
  public:
86
28
  /**
87
29
  * A client object passed to the v8 debugger whose ownership will be taken by
@@ -116,20 +58,20 @@ class EXPORT Debug {
116
58
  * callbacks as their content becomes invalid. These objects are from the
117
59
  * debugger event that started the debug message loop.
118
60
  */
119
- virtual Handle<Object> GetExecutionState() const = 0;
120
- virtual Handle<Object> GetEventData() const = 0;
61
+ virtual Local<Object> GetExecutionState() const = 0;
62
+ virtual Local<Object> GetEventData() const = 0;
121
63
 
122
64
  /**
123
65
  * Get the debugger protocol JSON.
124
66
  */
125
- virtual Handle<String> GetJSON() const = 0;
67
+ virtual Local<String> GetJSON() const = 0;
126
68
 
127
69
  /**
128
70
  * Get the context active when the debug event happened. Note this is not
129
71
  * the current active context as the JavaScript part of the debugger is
130
72
  * running in its own context which is entered at this point.
131
73
  */
132
- virtual Handle<Context> GetEventContext() const = 0;
74
+ virtual Local<Context> GetEventContext() const = 0;
133
75
 
134
76
  /**
135
77
  * Client data passed with the corresponding request if any. This is the
@@ -140,10 +82,11 @@ class EXPORT Debug {
140
82
  */
141
83
  virtual ClientData* GetClientData() const = 0;
142
84
 
85
+ virtual Isolate* GetIsolate() const = 0;
86
+
143
87
  virtual ~Message() {}
144
88
  };
145
89
 
146
-
147
90
  /**
148
91
  * An event details object passed to the debug event listener.
149
92
  */
@@ -158,244 +101,148 @@ class EXPORT Debug {
158
101
  * Access to execution state and event data of the debug event. Don't store
159
102
  * these cross callbacks as their content becomes invalid.
160
103
  */
161
- virtual Handle<Object> GetExecutionState() const = 0;
162
- virtual Handle<Object> GetEventData() const = 0;
104
+ virtual Local<Object> GetExecutionState() const = 0;
105
+ virtual Local<Object> GetEventData() const = 0;
163
106
 
164
107
  /**
165
108
  * Get the context active when the debug event happened. Note this is not
166
109
  * the current active context as the JavaScript part of the debugger is
167
110
  * running in its own context which is entered at this point.
168
111
  */
169
- virtual Handle<Context> GetEventContext() const = 0;
112
+ virtual Local<Context> GetEventContext() const = 0;
170
113
 
171
114
  /**
172
115
  * Client data passed with the corresponding callback when it was
173
116
  * registered.
174
117
  */
175
- virtual Handle<Value> GetCallbackData() const = 0;
118
+ virtual Local<Value> GetCallbackData() const = 0;
176
119
 
177
120
  /**
178
- * Client data passed to DebugBreakForCommand function. The
179
- * debugger takes ownership of the data and will delete it even if
180
- * there is no message handler.
121
+ * This is now a dummy that returns nullptr.
181
122
  */
182
123
  virtual ClientData* GetClientData() const = 0;
183
124
 
125
+ virtual Isolate* GetIsolate() const = 0;
126
+
184
127
  virtual ~EventDetails() {}
185
128
  };
186
129
 
187
-
188
- /**
189
- * Debug event callback function.
190
- *
191
- * \param event the type of the debug event that triggered the callback
192
- * (enum DebugEvent)
193
- * \param exec_state execution state (JavaScript object)
194
- * \param event_data event specific data (JavaScript object)
195
- * \param data value passed by the user to SetDebugEventListener
196
- */
197
- typedef void (*EventCallback)(DebugEvent event,
198
- Handle<Object> exec_state,
199
- Handle<Object> event_data,
200
- Handle<Value> data);
201
-
202
130
  /**
203
131
  * Debug event callback function.
204
132
  *
205
133
  * \param event_details object providing information about the debug event
206
134
  *
207
- * A EventCallback2 does not take possession of the event data,
208
- * and must not rely on the data persisting after the handler returns.
209
- */
210
- typedef void (*EventCallback2)(const EventDetails& event_details);
211
-
212
- /**
213
- * Debug message callback function.
214
- *
215
- * \param message the debug message handler message object
216
- * \param length length of the message
217
- * \param client_data the data value passed when registering the message handler
218
-
219
- * A MessageHandler does not take possession of the message string,
220
- * and must not rely on the data persisting after the handler returns.
221
- *
222
- * This message handler is deprecated. Use MessageHandler2 instead.
223
- */
224
- typedef void (*MessageHandler)(const uint16_t* message, int length,
225
- ClientData* client_data);
226
-
227
- /**
228
- * Debug message callback function.
229
- *
230
- * \param message the debug message handler message object
231
- *
232
- * A MessageHandler does not take possession of the message data,
135
+ * A EventCallback does not take possession of the event data,
233
136
  * and must not rely on the data persisting after the handler returns.
234
137
  */
235
- typedef void (*MessageHandler2)(const Message& message);
236
-
237
- /**
238
- * Debug host dispatch callback function.
239
- */
240
- typedef void (*HostDispatchHandler)();
138
+ typedef void (*EventCallback)(const EventDetails& event_details);
241
139
 
242
140
  /**
243
- * Callback function for the host to ensure debug messages are processed.
141
+ * This is now a no-op.
244
142
  */
245
- typedef void (*DebugMessageDispatchHandler)();
143
+ typedef void (*MessageHandler)(const Message& message);
246
144
 
247
- // Set a C debug event listener.
248
- static bool SetDebugEventListener(EventCallback that,
249
- Handle<Value> data = Handle<Value>());
250
- static bool SetDebugEventListener2(EventCallback2 that,
251
- Handle<Value> data = Handle<Value>());
252
-
253
- // Set a JavaScript debug event listener.
254
- static bool SetDebugEventListener(v8::Handle<v8::Object> that,
255
- Handle<Value> data = Handle<Value>());
145
+ V8_DEPRECATED("No longer supported", static bool SetDebugEventListener(
146
+ Isolate* isolate, EventCallback that,
147
+ Local<Value> data = Local<Value>()));
256
148
 
257
149
  // Schedule a debugger break to happen when JavaScript code is run
258
- // in the given isolate. If no isolate is provided the default
259
- // isolate is used.
260
- static void DebugBreak(Isolate* isolate = NULL);
150
+ // in the given isolate.
151
+ V8_DEPRECATED("No longer supported",
152
+ static void DebugBreak(Isolate* isolate));
261
153
 
262
154
  // Remove scheduled debugger break in given isolate if it has not
263
- // happened yet. If no isolate is provided the default isolate is
264
- // used.
265
- static void CancelDebugBreak(Isolate* isolate = NULL);
266
-
267
- // Break execution of JavaScript in the given isolate (this method
268
- // can be invoked from a non-VM thread) for further client command
269
- // execution on a VM thread. Client data is then passed in
270
- // EventDetails to EventCallback at the moment when the VM actually
271
- // stops. If no isolate is provided the default isolate is used.
272
- static void DebugBreakForCommand(ClientData* data = NULL,
273
- Isolate* isolate = NULL);
274
-
275
- // Message based interface. The message protocol is JSON. NOTE the message
276
- // handler thread is not supported any more parameter must be false.
277
- static void SetMessageHandler(MessageHandler handler,
278
- bool message_handler_thread = false);
279
- static void SetMessageHandler2(MessageHandler2 handler);
280
-
281
- // If no isolate is provided the default isolate is
282
- // used.
283
- static void SendCommand(const uint16_t* command, int length,
284
- ClientData* client_data = NULL,
285
- Isolate* isolate = NULL);
286
-
287
- // Dispatch interface.
288
- static void SetHostDispatchHandler(HostDispatchHandler handler,
289
- int period = 100);
155
+ // happened yet.
156
+ V8_DEPRECATED("No longer supported",
157
+ static void CancelDebugBreak(Isolate* isolate));
290
158
 
291
- /**
292
- * Register a callback function to be called when a debug message has been
293
- * received and is ready to be processed. For the debug messages to be
294
- * processed V8 needs to be entered, and in certain embedding scenarios this
295
- * callback can be used to make sure V8 is entered for the debug message to
296
- * be processed. Note that debug messages will only be processed if there is
297
- * a V8 break. This can happen automatically by using the option
298
- * --debugger-auto-break.
299
- * \param provide_locker requires that V8 acquires v8::Locker for you before
300
- * calling handler
301
- */
302
- static void SetDebugMessageDispatchHandler(
303
- DebugMessageDispatchHandler handler, bool provide_locker = false);
304
-
305
- /**
306
- * Run a JavaScript function in the debugger.
307
- * \param fun the function to call
308
- * \param data passed as second argument to the function
309
- * With this call the debugger is entered and the function specified is called
310
- * with the execution state as the first argument. This makes it possible to
311
- * get access to information otherwise not available during normal JavaScript
312
- * execution e.g. details on stack frames. Receiver of the function call will
313
- * be the debugger context global object, however this is a subject to change.
314
- * The following example shows a JavaScript function which when passed to
315
- * v8::Debug::Call will return the current line of JavaScript execution.
316
- *
317
- * \code
318
- * function frame_source_line(exec_state) {
319
- * return exec_state.frame(0).sourceLine();
320
- * }
321
- * \endcode
322
- */
323
- static Local<Value> Call(v8::Handle<v8::Function> fun,
324
- Handle<Value> data = Handle<Value>());
159
+ // Check if a debugger break is scheduled in the given isolate.
160
+ V8_DEPRECATED("No longer supported",
161
+ static bool CheckDebugBreak(Isolate* isolate));
325
162
 
326
- /**
327
- * Returns a mirror object for the given object.
328
- */
329
- static Local<Value> GetMirror(v8::Handle<v8::Value> obj);
330
-
331
- /**
332
- * Enable the V8 builtin debug agent. The debugger agent will listen on the
333
- * supplied TCP/IP port for remote debugger connection.
334
- * \param name the name of the embedding application
335
- * \param port the TCP/IP port to listen on
336
- * \param wait_for_connection whether V8 should pause on a first statement
337
- * allowing remote debugger to connect before anything interesting happened
338
- */
339
- static bool EnableAgent(const char* name, int port,
340
- bool wait_for_connection = false);
163
+ // This is now a no-op.
164
+ V8_DEPRECATED("No longer supported",
165
+ static void SetMessageHandler(Isolate* isolate,
166
+ MessageHandler handler));
341
167
 
342
- /**
343
- * Disable the V8 builtin debug agent. The TCP/IP connection will be closed.
344
- */
345
- static void DisableAgent();
168
+ // This is now a no-op.
169
+ V8_DEPRECATED("No longer supported",
170
+ static void SendCommand(Isolate* isolate,
171
+ const uint16_t* command, int length,
172
+ ClientData* client_data = NULL));
346
173
 
347
174
  /**
348
- * Makes V8 process all pending debug messages.
175
+ * Run a JavaScript function in the debugger.
176
+ * \param fun the function to call
177
+ * \param data passed as second argument to the function
178
+ * With this call the debugger is entered and the function specified is called
179
+ * with the execution state as the first argument. This makes it possible to
180
+ * get access to information otherwise not available during normal JavaScript
181
+ * execution e.g. details on stack frames. Receiver of the function call will
182
+ * be the debugger context global object, however this is a subject to change.
183
+ * The following example shows a JavaScript function which when passed to
184
+ * v8::Debug::Call will return the current line of JavaScript execution.
349
185
  *
350
- * From V8 point of view all debug messages come asynchronously (e.g. from
351
- * remote debugger) but they all must be handled synchronously: V8 cannot
352
- * do 2 things at one time so normal script execution must be interrupted
353
- * for a while.
354
- *
355
- * Generally when message arrives V8 may be in one of 3 states:
356
- * 1. V8 is running script; V8 will automatically interrupt and process all
357
- * pending messages (however auto_break flag should be enabled);
358
- * 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated
359
- * to reading and processing debug messages;
360
- * 3. V8 is not running at all or has called some long-working C++ function;
361
- * by default it means that processing of all debug messages will be deferred
362
- * until V8 gets control again; however, embedding application may improve
363
- * this by manually calling this method.
364
- *
365
- * It makes sense to call this method whenever a new debug message arrived and
366
- * V8 is not already running. Method v8::Debug::SetDebugMessageDispatchHandler
367
- * should help with the former condition.
368
- *
369
- * Technically this method in many senses is equivalent to executing empty
370
- * script:
371
- * 1. It does nothing except for processing all pending debug messages.
372
- * 2. It should be invoked with the same precautions and from the same context
373
- * as V8 script would be invoked from, because:
374
- * a. with "evaluate" command it can do whatever normal script can do,
375
- * including all native calls;
376
- * b. no other thread should call V8 while this method is running
377
- * (v8::Locker may be used here).
378
- *
379
- * "Evaluate" debug command behavior currently is not specified in scope
380
- * of this method.
186
+ * \code
187
+ * function frame_source_line(exec_state) {
188
+ * return exec_state.frame(0).sourceLine();
189
+ * }
190
+ * \endcode
381
191
  */
382
- static void ProcessDebugMessages();
192
+ V8_DEPRECATED("No longer supported",
193
+ static MaybeLocal<Value> Call(
194
+ Local<Context> context, v8::Local<v8::Function> fun,
195
+ Local<Value> data = Local<Value>()));
196
+
197
+ // This is now a no-op.
198
+ V8_DEPRECATED("No longer supported",
199
+ static void ProcessDebugMessages(Isolate* isolate));
383
200
 
384
201
  /**
385
202
  * Debugger is running in its own context which is entered while debugger
386
203
  * messages are being dispatched. This is an explicit getter for this
387
204
  * debugger context. Note that the content of the debugger context is subject
388
- * to change.
205
+ * to change. The Context exists only when the debugger is active, i.e. at
206
+ * least one DebugEventListener or MessageHandler is set.
389
207
  */
390
- static Local<Context> GetDebugContext();
208
+ V8_DEPRECATED("Use v8-inspector",
209
+ static Local<Context> GetDebugContext(Isolate* isolate));
391
210
 
211
+ /**
212
+ * While in the debug context, this method returns the top-most non-debug
213
+ * context, if it exists.
214
+ */
215
+ V8_DEPRECATED(
216
+ "No longer supported",
217
+ static MaybeLocal<Context> GetDebuggedContext(Isolate* isolate));
392
218
 
393
219
  /**
394
220
  * Enable/disable LiveEdit functionality for the given Isolate
395
221
  * (default Isolate if not provided). V8 will abort if LiveEdit is
396
222
  * unexpectedly used. LiveEdit is enabled by default.
397
223
  */
398
- static void SetLiveEditEnabled(bool enable, Isolate* isolate = NULL);
224
+ V8_DEPRECATED("No longer supported",
225
+ static void SetLiveEditEnabled(Isolate* isolate, bool enable));
226
+
227
+ /**
228
+ * Returns array of internal properties specific to the value type. Result has
229
+ * the following format: [<name>, <value>,...,<name>, <value>]. Result array
230
+ * will be allocated in the current context.
231
+ */
232
+ V8_DEPRECATED("No longer supported",
233
+ static MaybeLocal<Array> GetInternalProperties(
234
+ Isolate* isolate, Local<Value> value));
235
+
236
+ /**
237
+ * Defines if the ES2015 tail call elimination feature is enabled or not.
238
+ * The change of this flag triggers deoptimization of all functions that
239
+ * contain calls at tail position.
240
+ */
241
+ V8_DEPRECATED("No longer supported",
242
+ static bool IsTailCallEliminationEnabled(Isolate* isolate));
243
+ V8_DEPRECATED("No longer supported",
244
+ static void SetTailCallEliminationEnabled(Isolate* isolate,
245
+ bool enabled));
399
246
  };
400
247
 
401
248