libv8 5.9.211.38.1-arm-linux → 6.0.286.54.0beta1-arm-linux

Sign up to get free protection for your applications and to get access to all the features.
@@ -29,7 +29,7 @@ module Libv8
29
29
 
30
30
  def configure(context = MkmfContext.new)
31
31
  context.incflags.insert 0, Libv8::Paths.include_paths.map{ |p| "-I#{p}" }.join(" ") + " "
32
- context.ldflags.insert 0, Libv8::Paths.object_paths.join(" ") + " "
32
+ context.ldflags.insert 0, "-Wl,--start-group " + Libv8::Paths.object_paths.join(" ") + " -Wl,--end-group "
33
33
  end
34
34
 
35
35
  def verify_installation!
@@ -11,7 +11,7 @@ module Libv8
11
11
  end
12
12
 
13
13
  def object_paths
14
- [:base, :libplatform, :libsampler, :libbase, :snapshot].map do |name|
14
+ [:base, :libbase, :snapshot, :libplatform, :libsampler].map do |name|
15
15
  Shellwords.escape libv8_object(name)
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module Libv8
2
- VERSION = "5.9.211.38.1"
2
+ VERSION = "6.0.286.54.0beta1"
3
3
  end
@@ -13,6 +13,12 @@ namespace v8 {
13
13
  namespace platform {
14
14
 
15
15
  enum class IdleTaskSupport { kDisabled, kEnabled };
16
+ enum class InProcessStackDumping { kDisabled, kEnabled };
17
+
18
+ enum class MessageLoopBehavior : bool {
19
+ kDoNotWait = false,
20
+ kWaitForWork = true
21
+ };
16
22
 
17
23
  /**
18
24
  * Returns a new instance of the default v8::Platform implementation.
@@ -27,18 +33,24 @@ enum class IdleTaskSupport { kDisabled, kEnabled };
27
33
  */
28
34
  V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform(
29
35
  int thread_pool_size = 0,
30
- IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled);
36
+ IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
37
+ InProcessStackDumping in_process_stack_dumping =
38
+ InProcessStackDumping::kEnabled);
31
39
 
32
40
  /**
33
41
  * Pumps the message loop for the given isolate.
34
42
  *
35
43
  * The caller has to make sure that this is called from the right thread.
36
- * Returns true if a task was executed, and false otherwise. This call does
37
- * not block if no task is pending. The |platform| has to be created using
38
- * |CreateDefaultPlatform|.
44
+ * Returns true if a task was executed, and false otherwise. Unless requested
45
+ * through the |behavior| parameter, this call does not block if no task is
46
+ * pending. The |platform| has to be created using |CreateDefaultPlatform|.
39
47
  */
40
- V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform,
41
- v8::Isolate* isolate);
48
+ V8_PLATFORM_EXPORT bool PumpMessageLoop(
49
+ v8::Platform* platform, v8::Isolate* isolate,
50
+ MessageLoopBehavior behavior = MessageLoopBehavior::kDoNotWait);
51
+
52
+ V8_PLATFORM_EXPORT void EnsureEventLoopInitialized(v8::Platform* platform,
53
+ v8::Isolate* isolate);
42
54
 
43
55
  /**
44
56
  * Runs pending idle tasks for at most |idle_time_in_seconds| seconds.
@@ -0,0 +1,24 @@
1
+ // Copyright 2017 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
+ /**
6
+ * Compile-time constants.
7
+ *
8
+ * This header provides access to information about the value serializer at
9
+ * compile time, without declaring or defining any symbols that require linking
10
+ * to V8.
11
+ */
12
+
13
+ #ifndef INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_
14
+ #define INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_
15
+
16
+ #include <stdint.h>
17
+
18
+ namespace v8 {
19
+
20
+ constexpr uint32_t CurrentValueSerializerFormatVersion() { return 13; }
21
+
22
+ } // namespace v8
23
+
24
+ #endif // INCLUDE_V8_VALUE_SERIALIZER_VERSION_H_
@@ -8,10 +8,10 @@
8
8
  // These macros define the version number for the current version.
9
9
  // NOTE these macros are used by some of the tool scripts and the build
10
10
  // system so their names cannot be changed without changing the scripts.
11
- #define V8_MAJOR_VERSION 5
12
- #define V8_MINOR_VERSION 9
13
- #define V8_BUILD_NUMBER 211
14
- #define V8_PATCH_LEVEL 38
11
+ #define V8_MAJOR_VERSION 6
12
+ #define V8_MINOR_VERSION 0
13
+ #define V8_BUILD_NUMBER 286
14
+ #define V8_PATCH_LEVEL 54
15
15
 
16
16
  // Use 1 for candidates and 0 otherwise.
17
17
  // (Boolean macro values are not supported by all preprocessors.)
@@ -150,6 +150,9 @@ class FunctionCallbackArguments;
150
150
  class GlobalHandles;
151
151
  } // namespace internal
152
152
 
153
+ namespace debug {
154
+ class ConsoleCallArguments;
155
+ } // namespace debug
153
156
 
154
157
  // --- Handles ---
155
158
 
@@ -1092,7 +1095,8 @@ class V8_EXPORT Module {
1092
1095
  /**
1093
1096
  * ModuleDeclarationInstantiation
1094
1097
  *
1095
- * Returns false if an exception occurred during instantiation.
1098
+ * Returns false if an exception occurred during instantiation. (In the case
1099
+ * where the callback throws an exception, that exception is propagated.)
1096
1100
  */
1097
1101
  V8_WARN_UNUSED_RESULT bool Instantiate(Local<Context> context,
1098
1102
  ResolveCallback callback);
@@ -1789,8 +1793,6 @@ class V8_EXPORT ValueSerializer {
1789
1793
  virtual void FreeBufferMemory(void* buffer);
1790
1794
  };
1791
1795
 
1792
- static uint32_t GetCurrentDataFormatVersion();
1793
-
1794
1796
  explicit ValueSerializer(Isolate* isolate);
1795
1797
  ValueSerializer(Isolate* isolate, Delegate* delegate);
1796
1798
  ~ValueSerializer();
@@ -2317,6 +2319,8 @@ class V8_EXPORT Value : public Data {
2317
2319
 
2318
2320
  Local<String> TypeOf(Isolate*);
2319
2321
 
2322
+ Maybe<bool> InstanceOf(Local<Context> context, Local<Object> object);
2323
+
2320
2324
  private:
2321
2325
  V8_INLINE bool QuickIsUndefined() const;
2322
2326
  V8_INLINE bool QuickIsNull() const;
@@ -2791,11 +2795,16 @@ class V8_EXPORT Symbol : public Name {
2791
2795
  static Local<Symbol> ForApi(Isolate *isolate, Local<String> name);
2792
2796
 
2793
2797
  // Well-known symbols
2798
+ static Local<Symbol> GetHasInstance(Isolate* isolate);
2799
+ static Local<Symbol> GetIsConcatSpreadable(Isolate* isolate);
2794
2800
  static Local<Symbol> GetIterator(Isolate* isolate);
2795
- static Local<Symbol> GetUnscopables(Isolate* isolate);
2801
+ static Local<Symbol> GetMatch(Isolate* isolate);
2802
+ static Local<Symbol> GetReplace(Isolate* isolate);
2803
+ static Local<Symbol> GetSearch(Isolate* isolate);
2804
+ static Local<Symbol> GetSplit(Isolate* isolate);
2796
2805
  static Local<Symbol> GetToPrimitive(Isolate* isolate);
2797
2806
  static Local<Symbol> GetToStringTag(Isolate* isolate);
2798
- static Local<Symbol> GetIsConcatSpreadable(Isolate* isolate);
2807
+ static Local<Symbol> GetUnscopables(Isolate* isolate);
2799
2808
 
2800
2809
  V8_INLINE static Symbol* Cast(Value* obj);
2801
2810
 
@@ -3070,12 +3079,12 @@ class V8_EXPORT Object : public Value {
3070
3079
  Local<Context> context, Local<Value> key);
3071
3080
 
3072
3081
  /**
3073
- * Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3.
3082
+ * Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6.
3074
3083
  */
3075
3084
  V8_DEPRECATED("Use maybe version",
3076
- Local<Value> GetOwnPropertyDescriptor(Local<String> key));
3085
+ Local<Value> GetOwnPropertyDescriptor(Local<Name> key));
3077
3086
  V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor(
3078
- Local<Context> context, Local<String> key);
3087
+ Local<Context> context, Local<Name> key);
3079
3088
 
3080
3089
  V8_DEPRECATE_SOON("Use maybe version", bool Has(Local<Value> key));
3081
3090
  /**
@@ -3135,6 +3144,16 @@ class V8_EXPORT Object : public Value {
3135
3144
  PropertyAttribute attribute = None,
3136
3145
  AccessControl settings = DEFAULT);
3137
3146
 
3147
+ /**
3148
+ * Sets a native data property like Template::SetNativeDataProperty, but
3149
+ * this method sets on this object directly.
3150
+ */
3151
+ V8_WARN_UNUSED_RESULT Maybe<bool> SetNativeDataProperty(
3152
+ Local<Context> context, Local<Name> name,
3153
+ AccessorNameGetterCallback getter,
3154
+ AccessorNameSetterCallback setter = nullptr,
3155
+ Local<Value> data = Local<Value>(), PropertyAttribute attributes = None);
3156
+
3138
3157
  /**
3139
3158
  * Functionality for private properties.
3140
3159
  * This is an experimental feature, use at your own risk.
@@ -3578,16 +3597,34 @@ class ReturnValue {
3578
3597
  template<typename T>
3579
3598
  class FunctionCallbackInfo {
3580
3599
  public:
3600
+ /** The number of available arguments. */
3581
3601
  V8_INLINE int Length() const;
3602
+ /** Accessor for the available arguments. */
3582
3603
  V8_INLINE Local<Value> operator[](int i) const;
3583
3604
  V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead",
3584
3605
  Local<Function> Callee() const);
3606
+ /** Returns the receiver. This corresponds to the "this" value. */
3585
3607
  V8_INLINE Local<Object> This() const;
3608
+ /**
3609
+ * If the callback was created without a Signature, this is the same
3610
+ * value as This(). If there is a signature, and the signature didn't match
3611
+ * This() but one of its hidden prototypes, this will be the respective
3612
+ * hidden prototype.
3613
+ *
3614
+ * Note that this is not the prototype of This() on which the accessor
3615
+ * referencing this callback was found (which in V8 internally is often
3616
+ * referred to as holder [sic]).
3617
+ */
3586
3618
  V8_INLINE Local<Object> Holder() const;
3619
+ /** For construct calls, this returns the "new.target" value. */
3587
3620
  V8_INLINE Local<Value> NewTarget() const;
3621
+ /** Indicates whether this is a regular call or a construct call. */
3588
3622
  V8_INLINE bool IsConstructCall() const;
3623
+ /** The data argument specified when creating the callback. */
3589
3624
  V8_INLINE Local<Value> Data() const;
3625
+ /** The current Isolate. */
3590
3626
  V8_INLINE Isolate* GetIsolate() const;
3627
+ /** The ReturnValue for the call. */
3591
3628
  V8_INLINE ReturnValue<T> GetReturnValue() const;
3592
3629
  // This shouldn't be public, but the arm compiler needs it.
3593
3630
  static const int kArgsLength = 8;
@@ -3595,6 +3632,7 @@ class FunctionCallbackInfo {
3595
3632
  protected:
3596
3633
  friend class internal::FunctionCallbackArguments;
3597
3634
  friend class internal::CustomArguments<FunctionCallbackInfo>;
3635
+ friend class debug::ConsoleCallArguments;
3598
3636
  static const int kHolderIndex = 0;
3599
3637
  static const int kIsolateIndex = 1;
3600
3638
  static const int kReturnValueDefaultValueIndex = 2;
@@ -4154,12 +4192,42 @@ class V8_EXPORT ArrayBuffer : public Object {
4154
4192
  */
4155
4193
  virtual void* AllocateUninitialized(size_t length) = 0;
4156
4194
 
4195
+ /**
4196
+ * Reserved |length| bytes, but do not commit the memory. Must call
4197
+ * |SetProtection| to make memory accessible.
4198
+ */
4199
+ // TODO(eholk): make this pure virtual once blink implements this.
4200
+ virtual void* Reserve(size_t length);
4201
+
4157
4202
  /**
4158
4203
  * Free the memory block of size |length|, pointed to by |data|.
4159
4204
  * That memory is guaranteed to be previously allocated by |Allocate|.
4160
4205
  */
4161
4206
  virtual void Free(void* data, size_t length) = 0;
4162
4207
 
4208
+ enum class AllocationMode { kNormal, kReservation };
4209
+
4210
+ /**
4211
+ * Free the memory block of size |length|, pointed to by |data|.
4212
+ * That memory is guaranteed to be previously allocated by |Allocate| or
4213
+ * |Reserve|, depending on |mode|.
4214
+ */
4215
+ // TODO(eholk): make this pure virtual once blink implements this.
4216
+ virtual void Free(void* data, size_t length, AllocationMode mode);
4217
+
4218
+ enum class Protection { kNoAccess, kReadWrite };
4219
+
4220
+ /**
4221
+ * Change the protection on a region of memory.
4222
+ *
4223
+ * On platforms that make a distinction between reserving and committing
4224
+ * memory, changing the protection to kReadWrite must also ensure the memory
4225
+ * is committed.
4226
+ */
4227
+ // TODO(eholk): make this pure virtual once blink implements this.
4228
+ virtual void SetProtection(void* data, size_t length,
4229
+ Protection protection);
4230
+
4163
4231
  /**
4164
4232
  * malloc/free based convenience allocator.
4165
4233
  *
@@ -5741,9 +5809,13 @@ class V8_EXPORT ObjectTemplate : public Template {
5741
5809
  friend class FunctionTemplate;
5742
5810
  };
5743
5811
 
5744
-
5745
5812
  /**
5746
5813
  * A Signature specifies which receiver is valid for a function.
5814
+ *
5815
+ * A receiver matches a given signature if the receiver (or any of its
5816
+ * hidden prototypes) was created from the signature's FunctionTemplate, or
5817
+ * from a FunctionTemplate that inherits directly or indirectly from the
5818
+ * signature's FunctionTemplate.
5747
5819
  */
5748
5820
  class V8_EXPORT Signature : public Data {
5749
5821
  public:
@@ -5874,8 +5946,12 @@ class V8_EXPORT ResourceConstraints {
5874
5946
  void set_max_old_space_size(int limit_in_mb) {
5875
5947
  max_old_space_size_ = limit_in_mb;
5876
5948
  }
5877
- int max_executable_size() const { return max_executable_size_; }
5878
- void set_max_executable_size(int limit_in_mb) {
5949
+ V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_",
5950
+ int max_executable_size() const) {
5951
+ return max_executable_size_;
5952
+ }
5953
+ V8_DEPRECATE_SOON("max_executable_size_ is subsumed by max_old_space_size_",
5954
+ void set_max_executable_size(int limit_in_mb)) {
5879
5955
  max_executable_size_ = limit_in_mb;
5880
5956
  }
5881
5957
  uint32_t* stack_limit() const { return stack_limit_; }
@@ -6150,6 +6226,8 @@ enum GCType {
6150
6226
  * - kGCCallbackFlagCollectAllAvailableGarbage: The GC callback is called
6151
6227
  * in a phase where V8 is trying to collect all available garbage
6152
6228
  * (e.g., handling a low memory notification).
6229
+ * - kGCCallbackScheduleIdleGarbageCollection: The GC callback is called to
6230
+ * trigger an idle garbage collection.
6153
6231
  */
6154
6232
  enum GCCallbackFlags {
6155
6233
  kNoGCCallbackFlags = 0,
@@ -6158,6 +6236,7 @@ enum GCCallbackFlags {
6158
6236
  kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3,
6159
6237
  kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4,
6160
6238
  kGCCallbackFlagCollectAllExternalMemory = 1 << 5,
6239
+ kGCCallbackScheduleIdleGarbageCollection = 1 << 6,
6161
6240
  };
6162
6241
 
6163
6242
  typedef void (*GCCallback)(GCType type, GCCallbackFlags flags);
@@ -6184,9 +6263,8 @@ class V8_EXPORT HeapStatistics {
6184
6263
  size_t peak_malloced_memory() { return peak_malloced_memory_; }
6185
6264
 
6186
6265
  /**
6187
- * Returns a 0/1 boolean, which signifies whether the |--zap_code_space|
6188
- * option is enabled or not, which makes V8 overwrite heap garbage with a bit
6189
- * pattern.
6266
+ * Returns a 0/1 boolean, which signifies whether the V8 overwrite heap
6267
+ * garbage with a bit pattern.
6190
6268
  */
6191
6269
  size_t does_zap_garbage() { return does_zap_garbage_; }
6192
6270
 
@@ -6603,7 +6681,7 @@ class V8_EXPORT Isolate {
6603
6681
 
6604
6682
  /**
6605
6683
  * Whether calling Atomics.wait (a function that may block) is allowed in
6606
- * this isolate.
6684
+ * this isolate. This can also be configured via SetAllowAtomicsWait.
6607
6685
  */
6608
6686
  bool allow_atomics_wait;
6609
6687
 
@@ -7463,6 +7541,13 @@ class V8_EXPORT Isolate {
7463
7541
  */
7464
7542
  bool IsInUse();
7465
7543
 
7544
+ /**
7545
+ * Set whether calling Atomics.wait (a function that may block) is allowed in
7546
+ * this isolate. This can also be configured via
7547
+ * CreateParams::allow_atomics_wait.
7548
+ */
7549
+ void SetAllowAtomicsWait(bool allow);
7550
+
7466
7551
  Isolate() = delete;
7467
7552
  ~Isolate() = delete;
7468
7553
  Isolate(const Isolate&) = delete;
@@ -8164,6 +8249,11 @@ class V8_EXPORT TryCatch {
8164
8249
  */
8165
8250
  void SetVerbose(bool value);
8166
8251
 
8252
+ /**
8253
+ * Returns true if verbosity is enabled.
8254
+ */
8255
+ bool IsVerbose() const;
8256
+
8167
8257
  /**
8168
8258
  * Set whether or not this TryCatch should capture a Message object
8169
8259
  * which holds source information about where the exception
@@ -8356,16 +8446,14 @@ class V8_EXPORT Context {
8356
8446
  Isolate* GetIsolate();
8357
8447
 
8358
8448
  /**
8359
- * The field at kDebugIdIndex is reserved for V8 debugger implementation.
8360
- * The value is propagated to the scripts compiled in given Context and
8361
- * can be used for filtering scripts.
8449
+ * The field at kDebugIdIndex used to be reserved for the inspector.
8450
+ * It now serves no purpose.
8362
8451
  */
8363
8452
  enum EmbedderDataFields { kDebugIdIndex = 0 };
8364
8453
 
8365
8454
  /**
8366
8455
  * Gets the embedder data with the given index, which must have been set by a
8367
- * previous call to SetEmbedderData with the same index. Note that index 0
8368
- * currently has a special meaning for Chrome's debugger.
8456
+ * previous call to SetEmbedderData with the same index.
8369
8457
  */
8370
8458
  V8_INLINE Local<Value> GetEmbedderData(int index);
8371
8459
 
@@ -316,7 +316,7 @@
316
316
  // V8_NORETURN void MyAbort() { abort(); }
317
317
  #if V8_HAS_ATTRIBUTE_NORETURN
318
318
  # define V8_NORETURN __attribute__((noreturn))
319
- #elif HAS_DECLSPEC_NORETURN
319
+ #elif V8_HAS_DECLSPEC_NORETURN
320
320
  # define V8_NORETURN __declspec(noreturn)
321
321
  #else
322
322
  # define V8_NORETURN /* NOT SUPPORTED */
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libv8
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.9.211.38.1
5
- prerelease:
4
+ version: 6.0.286.54.0beta1
5
+ prerelease: 12
6
6
  platform: arm-linux
7
7
  authors:
8
8
  - Charles Lowell
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-26 00:00:00.000000000 Z
12
+ date: 2017-08-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -83,20 +83,25 @@ files:
83
83
  - vendor/v8/include/v8-inspector.h
84
84
  - vendor/v8/include/v8-debug.h
85
85
  - vendor/v8/include/v8-profiler.h
86
+ - vendor/v8/include/v8-value-serializer-version.h
86
87
  - vendor/v8/include/v8-version.h
87
88
  - vendor/v8/include/libplatform/libplatform.h
88
89
  - vendor/v8/include/libplatform/v8-tracing.h
89
90
  - vendor/v8/include/libplatform/libplatform-export.h
91
+ - vendor/v8/out/arm.release/libv8_builtins_setup.a
90
92
  - vendor/v8/out/arm.release/libv8_snapshot.a
91
93
  - vendor/v8/out/arm.release/libv8_libbase.a
92
94
  - vendor/v8/out/arm.release/libv8_nosnapshot.a
93
95
  - vendor/v8/out/arm.release/libv8_libplatform.a
96
+ - vendor/v8/out/arm.release/libv8_builtins_generators.a
94
97
  - vendor/v8/out/arm.release/libv8_libsampler.a
95
98
  - vendor/v8/out/arm.release/libv8_base.a
99
+ - vendor/v8/out/arm.release/obj.target/src/libv8_builtins_setup.a
96
100
  - vendor/v8/out/arm.release/obj.target/src/libv8_snapshot.a
97
101
  - vendor/v8/out/arm.release/obj.target/src/libv8_libbase.a
98
102
  - vendor/v8/out/arm.release/obj.target/src/libv8_nosnapshot.a
99
103
  - vendor/v8/out/arm.release/obj.target/src/libv8_libplatform.a
104
+ - vendor/v8/out/arm.release/obj.target/src/libv8_builtins_generators.a
100
105
  - vendor/v8/out/arm.release/obj.target/src/libv8_libsampler.a
101
106
  - vendor/v8/out/arm.release/obj.target/src/libv8_base.a
102
107
  homepage: http://github.com/cowboyd/libv8
@@ -115,16 +120,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
120
  version: '0'
116
121
  segments:
117
122
  - 0
118
- hash: 991101905
123
+ hash: -400294509
119
124
  required_rubygems_version: !ruby/object:Gem::Requirement
120
125
  none: false
121
126
  requirements:
122
- - - ! '>='
127
+ - - ! '>'
123
128
  - !ruby/object:Gem::Version
124
- version: '0'
125
- segments:
126
- - 0
127
- hash: 991101905
129
+ version: 1.3.1
128
130
  requirements: []
129
131
  rubyforge_project: libv8
130
132
  rubygems_version: 1.8.23