Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 22d079f083672f3f7562d06a3b9d40295044e565..73379541621e070315e351a7e1ab4c8714f2de44 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -11,6 +11,7 @@ |
#include "src/assert-scope.h" |
#include "src/bailout-reason.h" |
#include "src/base/bits.h" |
+#include "src/base/flags.h" |
#include "src/base/smart-pointers.h" |
#include "src/builtins.h" |
#include "src/checks.h" |
@@ -7680,7 +7681,7 @@ class JSMessageObject: public JSObject { |
// used for tracking the last usage (used for code flushing).. |
// - max number of registers used by irregexp implementations. |
// - number of capture registers (output values) of the regexp. |
-class JSRegExp: public JSObject { |
+class JSRegExp final : public JSObject { |
public: |
// Meaning of Type: |
// NOT_COMPILED: Initial value. No data has been stored in the JSRegExp yet. |
@@ -7689,35 +7690,26 @@ class JSRegExp: public JSObject { |
// IRREGEXP_NATIVE: Compiled to native code with Irregexp. |
enum Type { NOT_COMPILED, ATOM, IRREGEXP }; |
enum Flag { |
- NONE = 0, |
- GLOBAL = 1, |
- IGNORE_CASE = 2, |
- MULTILINE = 4, |
- STICKY = 8, |
- UNICODE_ESCAPES = 16 |
- }; |
- |
- class Flags { |
- public: |
- explicit Flags(uint32_t value) : value_(value) { } |
- bool is_global() { return (value_ & GLOBAL) != 0; } |
- bool is_ignore_case() { return (value_ & IGNORE_CASE) != 0; } |
- bool is_multiline() { return (value_ & MULTILINE) != 0; } |
- bool is_sticky() { return (value_ & STICKY) != 0; } |
- bool is_unicode() { return (value_ & UNICODE_ESCAPES) != 0; } |
- uint32_t value() { return value_; } |
- private: |
- uint32_t value_; |
+ kNone = 0, |
+ kGlobal = 1 << 0, |
+ kIgnoreCase = 1 << 1, |
+ kMultiline = 1 << 2, |
+ kSticky = 1 << 3, |
+ kUnicode = 1 << 4, |
}; |
+ typedef base::Flags<Flag> Flags; |
DECL_ACCESSORS(data, Object) |
DECL_ACCESSORS(flags, Object) |
DECL_ACCESSORS(source, Object) |
+ static MaybeHandle<JSRegExp> New(Handle<String> source, Flags flags); |
static MaybeHandle<JSRegExp> New(Handle<String> source, Handle<String> flags); |
static Handle<JSRegExp> Copy(Handle<JSRegExp> regexp); |
static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, |
+ Handle<String> source, Flags flags); |
+ static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, |
Handle<String> source, |
Handle<String> flags_string); |
@@ -7819,6 +7811,8 @@ class JSRegExp: public JSObject { |
static const int kCodeAgeMask = 0xff; |
}; |
+DEFINE_OPERATORS_FOR_FLAGS(JSRegExp::Flags) |
+ |
class CompilationCacheShape : public BaseShape<HashTableKey*> { |
public: |