| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 #ifndef V8_JSON_PARSER_H_ | 5 #ifndef V8_JSON_PARSER_H_ |
| 6 #define V8_JSON_PARSER_H_ | 6 #define V8_JSON_PARSER_H_ |
| 7 | 7 |
| 8 #include "src/char-predicates.h" | 8 #include "src/char-predicates.h" |
| 9 #include "src/conversions.h" | 9 #include "src/conversions.h" |
| 10 #include "src/debug/debug.h" |
| 10 #include "src/factory.h" | 11 #include "src/factory.h" |
| 11 #include "src/messages.h" | 12 #include "src/messages.h" |
| 12 #include "src/scanner.h" | 13 #include "src/scanner.h" |
| 13 #include "src/token.h" | 14 #include "src/token.h" |
| 14 #include "src/transitions.h" | 15 #include "src/transitions.h" |
| 15 #include "src/types.h" | 16 #include "src/types.h" |
| 16 | 17 |
| 17 namespace v8 { | 18 namespace v8 { |
| 18 namespace internal { | 19 namespace internal { |
| 19 | 20 |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 break; | 238 break; |
| 238 case '"': | 239 case '"': |
| 239 message = MessageTemplate::kUnexpectedTokenString; | 240 message = MessageTemplate::kUnexpectedTokenString; |
| 240 break; | 241 break; |
| 241 default: | 242 default: |
| 242 message = MessageTemplate::kUnexpectedToken; | 243 message = MessageTemplate::kUnexpectedToken; |
| 243 argument = factory->LookupSingleCharacterStringFromCode(c0_); | 244 argument = factory->LookupSingleCharacterStringFromCode(c0_); |
| 244 break; | 245 break; |
| 245 } | 246 } |
| 246 | 247 |
| 247 MessageLocation location(factory->NewScript(source_), | 248 Handle<Script> script(factory->NewScript(source_)); |
| 248 position_, | 249 // We should sent compile error event because we compile JSON object in |
| 249 position_ + 1); | 250 // separated source file. |
| 251 isolate()->debug()->OnCompileError(script); |
| 252 MessageLocation location(script, position_, position_ + 1); |
| 250 Handle<Object> error = factory->NewSyntaxError(message, argument); | 253 Handle<Object> error = factory->NewSyntaxError(message, argument); |
| 251 return isolate()->template Throw<Object>(error, &location); | 254 return isolate()->template Throw<Object>(error, &location); |
| 252 } | 255 } |
| 253 return result; | 256 return result; |
| 254 } | 257 } |
| 255 | 258 |
| 256 | 259 |
| 257 // Parse any JSON value. | 260 // Parse any JSON value. |
| 258 template <bool seq_one_byte> | 261 template <bool seq_one_byte> |
| 259 Handle<Object> JsonParser<seq_one_byte>::ParseJsonValue() { | 262 Handle<Object> JsonParser<seq_one_byte>::ParseJsonValue() { |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 838 | 841 |
| 839 DCHECK_EQ('"', c0_); | 842 DCHECK_EQ('"', c0_); |
| 840 // Advance past the last '"'. | 843 // Advance past the last '"'. |
| 841 AdvanceSkipWhitespace(); | 844 AdvanceSkipWhitespace(); |
| 842 return result; | 845 return result; |
| 843 } | 846 } |
| 844 | 847 |
| 845 } } // namespace v8::internal | 848 } } // namespace v8::internal |
| 846 | 849 |
| 847 #endif // V8_JSON_PARSER_H_ | 850 #endif // V8_JSON_PARSER_H_ |
| OLD | NEW |