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

Side by Side Diff: src/regexp-macro-assembler.h

Issue 17409: Check for empty repetitions. (Closed)
Patch Set: Created 11 years, 11 months 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 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 virtual void EmitOrLink(Label* label) = 0; 128 virtual void EmitOrLink(Label* label) = 0;
129 virtual void Fail() = 0; 129 virtual void Fail() = 0;
130 virtual Handle<Object> GetCode(Handle<String> source) = 0; 130 virtual Handle<Object> GetCode(Handle<String> source) = 0;
131 virtual void GoTo(Label* label) = 0; 131 virtual void GoTo(Label* label) = 0;
132 // Check whether a register is >= a given constant and go to a label if it 132 // Check whether a register is >= a given constant and go to a label if it
133 // is. Backtracks instead if the label is NULL. 133 // is. Backtracks instead if the label is NULL.
134 virtual void IfRegisterGE(int reg, int comparand, Label* if_ge) = 0; 134 virtual void IfRegisterGE(int reg, int comparand, Label* if_ge) = 0;
135 // Check whether a register is < a given constant and go to a label if it is. 135 // Check whether a register is < a given constant and go to a label if it is.
136 // Backtracks instead if the label is NULL. 136 // Backtracks instead if the label is NULL.
137 virtual void IfRegisterLT(int reg, int comparand, Label* if_lt) = 0; 137 virtual void IfRegisterLT(int reg, int comparand, Label* if_lt) = 0;
138 // Check whether a register is != to the current position and go to a
139 // label if it is.
Erik Corry 2009/01/08 11:10:16 Or rather, if it is not?
Christian Plesner Hansen 2009/01/08 12:40:49 Whoops, forgot to update the comment when changing
140 virtual void IfRegisterEqPos(int reg, Label* if_eq) = 0;
138 virtual IrregexpImplementation Implementation() = 0; 141 virtual IrregexpImplementation Implementation() = 0;
139 virtual void LoadCurrentCharacter(int cp_offset, 142 virtual void LoadCurrentCharacter(int cp_offset,
140 Label* on_end_of_input, 143 Label* on_end_of_input,
141 bool check_bounds = true, 144 bool check_bounds = true,
142 int characters = 1) = 0; 145 int characters = 1) = 0;
143 virtual void PopCurrentPosition() = 0; 146 virtual void PopCurrentPosition() = 0;
144 virtual void PopRegister(int register_index) = 0; 147 virtual void PopRegister(int register_index) = 0;
145 virtual void PushBacktrack(Label* label) = 0; 148 virtual void PushBacktrack(Label* label) = 0;
146 virtual void PushCurrentPosition() = 0; 149 virtual void PushCurrentPosition() = 0;
147 virtual void PushRegister(int register_index) = 0; 150 virtual void PushRegister(int register_index) = 0;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 ArraySlice GetBuffer(Vector<T> values); 195 ArraySlice GetBuffer(Vector<T> values);
193 private: 196 private:
194 size_t byte_array_size_; 197 size_t byte_array_size_;
195 Handle<ByteArray> current_byte_array_; 198 Handle<ByteArray> current_byte_array_;
196 int current_byte_array_free_offset_; 199 int current_byte_array_free_offset_;
197 }; 200 };
198 201
199 } } // namespace v8::internal 202 } } // namespace v8::internal
200 203
201 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_ 204 #endif // V8_REGEXP_MACRO_ASSEMBLER_H_
OLDNEW
« src/jsregexp.cc ('K') | « src/jsregexp.cc ('k') | src/regexp-macro-assembler-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698