Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: src/parsing/preparse-data.cc

Issue 2481163002: Assign unique IDs to FunctionLiterals (Closed)
Patch Set: updates Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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/parsing/preparse-data.h" 5 #include "src/parsing/preparse-data.h"
6 #include "src/base/hashmap.h" 6 #include "src/base/hashmap.h"
7 #include "src/base/logging.h" 7 #include "src/base/logging.h"
8 #include "src/globals.h" 8 #include "src/globals.h"
9 #include "src/parsing/parser.h" 9 #include "src/parsing/parser.h"
10 #include "src/parsing/preparse-data-format.h" 10 #include "src/parsing/preparse-data-format.h"
11 11
12 namespace v8 { 12 namespace v8 {
13 namespace internal { 13 namespace internal {
14 14
15 void ParserLogger::LogFunction(int start, int end, int num_parameters, 15 void ParserLogger::LogFunction(int start, int end, int num_parameters,
16 int function_length, 16 int function_length,
17 bool has_duplicate_parameters, int literals, 17 bool has_duplicate_parameters, int literals,
18 int properties, LanguageMode language_mode, 18 int properties, LanguageMode language_mode,
19 bool uses_super_property, bool calls_eval) { 19 bool uses_super_property, bool calls_eval,
20 int num_inner_functions) {
20 function_store_.Add(start); 21 function_store_.Add(start);
21 function_store_.Add(end); 22 function_store_.Add(end);
22 function_store_.Add(num_parameters); 23 function_store_.Add(num_parameters);
23 function_store_.Add(function_length); 24 function_store_.Add(function_length);
24 function_store_.Add(literals); 25 function_store_.Add(literals);
25 function_store_.Add(properties); 26 function_store_.Add(properties);
26 function_store_.Add( 27 function_store_.Add(
27 FunctionEntry::EncodeFlags(language_mode, uses_super_property, calls_eval, 28 FunctionEntry::EncodeFlags(language_mode, uses_super_property, calls_eval,
28 has_duplicate_parameters)); 29 has_duplicate_parameters));
30 function_store_.Add(num_inner_functions);
29 } 31 }
30 32
31 ParserLogger::ParserLogger() { 33 ParserLogger::ParserLogger() {
32 preamble_[PreparseDataConstants::kMagicOffset] = 34 preamble_[PreparseDataConstants::kMagicOffset] =
33 PreparseDataConstants::kMagicNumber; 35 PreparseDataConstants::kMagicNumber;
34 preamble_[PreparseDataConstants::kVersionOffset] = 36 preamble_[PreparseDataConstants::kVersionOffset] =
35 PreparseDataConstants::kCurrentVersion; 37 PreparseDataConstants::kCurrentVersion;
36 preamble_[PreparseDataConstants::kFunctionsSizeOffset] = 0; 38 preamble_[PreparseDataConstants::kFunctionsSizeOffset] = 0;
37 preamble_[PreparseDataConstants::kSizeOffset] = 0; 39 preamble_[PreparseDataConstants::kSizeOffset] = 0;
38 DCHECK_EQ(4, PreparseDataConstants::kHeaderSize); 40 DCHECK_EQ(4, PreparseDataConstants::kHeaderSize);
(...skipping 15 matching lines...) Expand all
54 DCHECK(IsAligned(reinterpret_cast<intptr_t>(data), kPointerAlignment)); 56 DCHECK(IsAligned(reinterpret_cast<intptr_t>(data), kPointerAlignment));
55 ScriptData* result = new ScriptData(reinterpret_cast<byte*>(data), 57 ScriptData* result = new ScriptData(reinterpret_cast<byte*>(data),
56 total_size * sizeof(unsigned)); 58 total_size * sizeof(unsigned));
57 result->AcquireDataOwnership(); 59 result->AcquireDataOwnership();
58 return result; 60 return result;
59 } 61 }
60 62
61 63
62 } // namespace internal 64 } // namespace internal
63 } // namespace v8. 65 } // namespace v8.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698