| 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 |