Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/object.h" | 5 #include "vm/object.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
| (...skipping 20729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 20740 void JSRegExp::set_pattern(const String& pattern) const { | 20740 void JSRegExp::set_pattern(const String& pattern) const { |
| 20741 StorePointer(&raw_ptr()->pattern_, pattern.raw()); | 20741 StorePointer(&raw_ptr()->pattern_, pattern.raw()); |
| 20742 } | 20742 } |
| 20743 | 20743 |
| 20744 | 20744 |
| 20745 void JSRegExp::set_function(intptr_t cid, const Function& value) const { | 20745 void JSRegExp::set_function(intptr_t cid, const Function& value) const { |
| 20746 StorePointer(FunctionAddr(cid), value.raw()); | 20746 StorePointer(FunctionAddr(cid), value.raw()); |
| 20747 } | 20747 } |
| 20748 | 20748 |
| 20749 | 20749 |
| 20750 void JSRegExp::set_bytecode(bool is_one_byte, const TypedData& bytecode) const { | |
| 20751 if (is_one_byte) { | |
| 20752 StorePointer(&raw_ptr()->one_byte_bytecode_, bytecode.raw()); | |
| 20753 } else { | |
| 20754 StorePointer(&raw_ptr()->two_byte_bytecode_, bytecode.raw()); | |
| 20755 } | |
|
srdjan
2015/07/07 19:30:25
If you set one, do you want to make sure that the
rmacnak
2015/07/07 21:42:53
They can both be set if one tries to match the reg
| |
| 20756 } | |
| 20757 | |
| 20758 | |
| 20750 void JSRegExp::set_num_bracket_expressions(intptr_t value) const { | 20759 void JSRegExp::set_num_bracket_expressions(intptr_t value) const { |
| 20751 StoreSmi(&raw_ptr()->num_bracket_expressions_, Smi::New(value)); | 20760 StoreSmi(&raw_ptr()->num_bracket_expressions_, Smi::New(value)); |
| 20752 } | 20761 } |
| 20753 | 20762 |
| 20754 | 20763 |
| 20755 RawJSRegExp* JSRegExp::New(Heap::Space space) { | 20764 RawJSRegExp* JSRegExp::New(Heap::Space space) { |
| 20756 JSRegExp& result = JSRegExp::Handle(); | 20765 JSRegExp& result = JSRegExp::Handle(); |
| 20757 { | 20766 { |
| 20758 RawObject* raw = Object::Allocate(JSRegExp::kClassId, | 20767 RawObject* raw = Object::Allocate(JSRegExp::kClassId, |
| 20759 JSRegExp::InstanceSize(), | 20768 JSRegExp::InstanceSize(), |
| 20760 space); | 20769 space); |
| 20761 NoSafepointScope no_safepoint; | 20770 NoSafepointScope no_safepoint; |
| 20762 result ^= raw; | 20771 result ^= raw; |
| 20763 result.set_type(kUnitialized); | 20772 result.set_type(kUnitialized); |
| 20764 result.set_flags(0); | 20773 result.set_flags(0); |
| 20774 result.set_num_registers(-1); | |
| 20765 } | 20775 } |
| 20766 return result.raw(); | 20776 return result.raw(); |
| 20767 } | 20777 } |
| 20768 | 20778 |
| 20769 | 20779 |
| 20770 void* JSRegExp::GetDataStartAddress() const { | 20780 void* JSRegExp::GetDataStartAddress() const { |
| 20771 intptr_t addr = reinterpret_cast<intptr_t>(raw_ptr()); | 20781 intptr_t addr = reinterpret_cast<intptr_t>(raw_ptr()); |
| 20772 return reinterpret_cast<void*>(addr + sizeof(RawJSRegExp)); | 20782 return reinterpret_cast<void*>(addr + sizeof(RawJSRegExp)); |
| 20773 } | 20783 } |
| 20774 | 20784 |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 21066 return tag_label.ToCString(); | 21076 return tag_label.ToCString(); |
| 21067 } | 21077 } |
| 21068 | 21078 |
| 21069 | 21079 |
| 21070 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 21080 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 21071 Instance::PrintJSONImpl(stream, ref); | 21081 Instance::PrintJSONImpl(stream, ref); |
| 21072 } | 21082 } |
| 21073 | 21083 |
| 21074 | 21084 |
| 21075 } // namespace dart | 21085 } // namespace dart |
| OLD | NEW |