| 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/api.h" | 7 #include "src/api.h" |
| 8 #include "src/ast.h" | 8 #include "src/ast.h" |
| 9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
| (...skipping 4839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4850 | 4850 |
| 4851 if (info()->is_lazy()) { | 4851 if (info()->is_lazy()) { |
| 4852 ASSERT(!info()->is_eval()); | 4852 ASSERT(!info()->is_eval()); |
| 4853 if (info()->shared_info()->is_function()) { | 4853 if (info()->shared_info()->is_function()) { |
| 4854 result = ParseLazy(); | 4854 result = ParseLazy(); |
| 4855 } else { | 4855 } else { |
| 4856 result = ParseProgram(); | 4856 result = ParseProgram(); |
| 4857 } | 4857 } |
| 4858 } else { | 4858 } else { |
| 4859 SetCachedData(info()->cached_data(), info()->cached_data_mode()); | 4859 SetCachedData(info()->cached_data(), info()->cached_data_mode()); |
| 4860 if (info()->cached_data_mode() == CONSUME_CACHED_DATA && | 4860 result = ParseProgram(); |
| 4861 (*info()->cached_data())->has_error()) { | |
| 4862 ScriptData* cached_data = *(info()->cached_data()); | |
| 4863 Scanner::Location loc = cached_data->MessageLocation(); | |
| 4864 const char* message = cached_data->BuildMessage(); | |
| 4865 const char* arg = cached_data->BuildArg(); | |
| 4866 ParserTraits::ReportMessageAt(loc, message, arg, | |
| 4867 cached_data->IsReferenceError()); | |
| 4868 DeleteArray(message); | |
| 4869 DeleteArray(arg); | |
| 4870 ASSERT(info()->isolate()->has_pending_exception()); | |
| 4871 } else { | |
| 4872 result = ParseProgram(); | |
| 4873 } | |
| 4874 } | 4861 } |
| 4875 info()->SetFunction(result); | 4862 info()->SetFunction(result); |
| 4876 ASSERT(ast_value_factory_->IsInternalized()); | 4863 ASSERT(ast_value_factory_->IsInternalized()); |
| 4877 // info takes ownership of ast_value_factory_. | 4864 // info takes ownership of ast_value_factory_. |
| 4878 if (info()->ast_value_factory() == NULL) { | 4865 if (info()->ast_value_factory() == NULL) { |
| 4879 info()->SetAstValueFactory(ast_value_factory_); | 4866 info()->SetAstValueFactory(ast_value_factory_); |
| 4880 } | 4867 } |
| 4881 ast_value_factory_ = NULL; | 4868 ast_value_factory_ = NULL; |
| 4882 | 4869 |
| 4883 InternalizeUseCounts(); | 4870 InternalizeUseCounts(); |
| 4884 | 4871 |
| 4885 return (result != NULL); | 4872 return (result != NULL); |
| 4886 } | 4873 } |
| 4887 | 4874 |
| 4888 } } // namespace v8::internal | 4875 } } // namespace v8::internal |
| OLD | NEW |