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/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/char-predicates-inl.h" | 10 #include "src/char-predicates-inl.h" |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 } | 318 } |
319 | 319 |
320 if (c0_ == '"') { | 320 if (c0_ == '"') { |
321 // Successfully parsed index, parse and store element. | 321 // Successfully parsed index, parse and store element. |
322 AdvanceSkipWhitespace(); | 322 AdvanceSkipWhitespace(); |
323 | 323 |
324 if (c0_ == ':') { | 324 if (c0_ == ':') { |
325 AdvanceSkipWhitespace(); | 325 AdvanceSkipWhitespace(); |
326 Handle<Object> value = ParseJsonValue(); | 326 Handle<Object> value = ParseJsonValue(); |
327 if (!value.is_null()) { | 327 if (!value.is_null()) { |
328 JSObject::SetOwnElement(json_object, index, value, SLOPPY).Assert(); | 328 JSObject::SetOwnElementIgnoreAttributes(json_object, index, value, NONE) |
| 329 .Assert(); |
329 return kElementFound; | 330 return kElementFound; |
330 } else { | 331 } else { |
331 return kNullHandle; | 332 return kNullHandle; |
332 } | 333 } |
333 } | 334 } |
334 } | 335 } |
335 return kElementNotFound; | 336 return kElementNotFound; |
336 } | 337 } |
337 | 338 |
338 // Parse a JSON object. Position must be right at '{'. | 339 // Parse a JSON object. Position must be right at '{'. |
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 | 835 |
835 DCHECK_EQ('"', c0_); | 836 DCHECK_EQ('"', c0_); |
836 // Advance past the last '"'. | 837 // Advance past the last '"'. |
837 AdvanceSkipWhitespace(); | 838 AdvanceSkipWhitespace(); |
838 return result; | 839 return result; |
839 } | 840 } |
840 | 841 |
841 } } // namespace v8::internal | 842 } } // namespace v8::internal |
842 | 843 |
843 #endif // V8_JSON_PARSER_H_ | 844 #endif // V8_JSON_PARSER_H_ |
OLD | NEW |