OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
| 7 #include "src/regexp/jsregexp.h" |
| 8 |
7 #include "src/ast.h" | 9 #include "src/ast.h" |
8 #include "src/base/platform/platform.h" | 10 #include "src/base/platform/platform.h" |
9 #include "src/compilation-cache.h" | 11 #include "src/compilation-cache.h" |
10 #include "src/compiler.h" | 12 #include "src/compiler.h" |
11 #include "src/execution.h" | 13 #include "src/execution.h" |
12 #include "src/factory.h" | 14 #include "src/factory.h" |
13 #include "src/jsregexp-inl.h" | |
14 #include "src/jsregexp.h" | |
15 #include "src/messages.h" | 15 #include "src/messages.h" |
16 #include "src/ostreams.h" | 16 #include "src/ostreams.h" |
17 #include "src/parser.h" | 17 #include "src/parser.h" |
18 #include "src/regexp-macro-assembler.h" | 18 #include "src/regexp/interpreter-irregexp.h" |
19 #include "src/regexp-macro-assembler-irregexp.h" | 19 #include "src/regexp/jsregexp-inl.h" |
20 #include "src/regexp-macro-assembler-tracer.h" | 20 #include "src/regexp/regexp-macro-assembler.h" |
21 #include "src/regexp-stack.h" | 21 #include "src/regexp/regexp-macro-assembler-irregexp.h" |
| 22 #include "src/regexp/regexp-macro-assembler-tracer.h" |
| 23 #include "src/regexp/regexp-stack.h" |
22 #include "src/runtime/runtime.h" | 24 #include "src/runtime/runtime.h" |
23 #include "src/splay-tree-inl.h" | 25 #include "src/splay-tree-inl.h" |
24 #include "src/string-search.h" | 26 #include "src/string-search.h" |
25 #include "src/unicode-decoder.h" | 27 #include "src/unicode-decoder.h" |
26 | 28 |
27 #ifndef V8_INTERPRETED_REGEXP | 29 #ifndef V8_INTERPRETED_REGEXP |
28 #if V8_TARGET_ARCH_IA32 | 30 #if V8_TARGET_ARCH_IA32 |
29 #include "src/ia32/regexp-macro-assembler-ia32.h" // NOLINT | 31 #include "src/regexp/ia32/regexp-macro-assembler-ia32.h" |
30 #elif V8_TARGET_ARCH_X64 | 32 #elif V8_TARGET_ARCH_X64 |
31 #include "src/x64/regexp-macro-assembler-x64.h" // NOLINT | 33 #include "src/regexp/x64/regexp-macro-assembler-x64.h" |
32 #elif V8_TARGET_ARCH_ARM64 | 34 #elif V8_TARGET_ARCH_ARM64 |
33 #include "src/arm64/regexp-macro-assembler-arm64.h" // NOLINT | 35 #include "src/regexp/arm64/regexp-macro-assembler-arm64.h" |
34 #elif V8_TARGET_ARCH_ARM | 36 #elif V8_TARGET_ARCH_ARM |
35 #include "src/arm/regexp-macro-assembler-arm.h" // NOLINT | 37 #include "src/regexp/arm/regexp-macro-assembler-arm.h" |
36 #elif V8_TARGET_ARCH_PPC | 38 #elif V8_TARGET_ARCH_PPC |
37 #include "src/ppc/regexp-macro-assembler-ppc.h" // NOLINT | 39 #include "src/regexp/ppc/regexp-macro-assembler-ppc.h" |
38 #elif V8_TARGET_ARCH_MIPS | 40 #elif V8_TARGET_ARCH_MIPS |
39 #include "src/mips/regexp-macro-assembler-mips.h" // NOLINT | 41 #include "src/regexp/mips/regexp-macro-assembler-mips.h" |
40 #elif V8_TARGET_ARCH_MIPS64 | 42 #elif V8_TARGET_ARCH_MIPS64 |
41 #include "src/mips64/regexp-macro-assembler-mips64.h" // NOLINT | 43 #include "src/regexp/mips64/regexp-macro-assembler-mips64.h" |
42 #elif V8_TARGET_ARCH_X87 | 44 #elif V8_TARGET_ARCH_X87 |
43 #include "src/x87/regexp-macro-assembler-x87.h" // NOLINT | 45 #include "src/regexp/x87/regexp-macro-assembler-x87.h" |
44 #else | 46 #else |
45 #error Unsupported target architecture. | 47 #error Unsupported target architecture. |
46 #endif | 48 #endif |
47 #endif | 49 #endif |
48 | 50 |
49 #include "src/interpreter-irregexp.h" | |
50 | |
51 | 51 |
52 namespace v8 { | 52 namespace v8 { |
53 namespace internal { | 53 namespace internal { |
54 | 54 |
55 MaybeHandle<Object> RegExpImpl::CreateRegExpLiteral( | 55 MaybeHandle<Object> RegExpImpl::CreateRegExpLiteral( |
56 Handle<JSFunction> constructor, | 56 Handle<JSFunction> constructor, |
57 Handle<String> pattern, | 57 Handle<String> pattern, |
58 Handle<String> flags) { | 58 Handle<String> flags) { |
59 // Call the construct code with 2 arguments. | 59 // Call the construct code with 2 arguments. |
60 Handle<Object> argv[] = { pattern, flags }; | 60 Handle<Object> argv[] = { pattern, flags }; |
(...skipping 6342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6403 bool too_much = pattern->length() > RegExpImpl::kRegExpTooLargeToOptimize; | 6403 bool too_much = pattern->length() > RegExpImpl::kRegExpTooLargeToOptimize; |
6404 if (heap->total_regexp_code_generated() > RegExpImpl::kRegExpCompiledLimit && | 6404 if (heap->total_regexp_code_generated() > RegExpImpl::kRegExpCompiledLimit && |
6405 heap->isolate()->memory_allocator()->SizeExecutable() > | 6405 heap->isolate()->memory_allocator()->SizeExecutable() > |
6406 RegExpImpl::kRegExpExecutableMemoryLimit) { | 6406 RegExpImpl::kRegExpExecutableMemoryLimit) { |
6407 too_much = true; | 6407 too_much = true; |
6408 } | 6408 } |
6409 return too_much; | 6409 return too_much; |
6410 } | 6410 } |
6411 } // namespace internal | 6411 } // namespace internal |
6412 } // namespace v8 | 6412 } // namespace v8 |
OLD | NEW |