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

Side by Side Diff: src/js/macros.py

Issue 2244673002: [regexp][liveedit] Fix inconsistent JSArrays (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/js/regexp.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2006-2009 the V8 project authors. All rights reserved. 1 # Copyright 2006-2009 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 # To avoid ES2015 Function name inference. 110 # To avoid ES2015 Function name inference.
111 macro ANONYMOUS_FUNCTION(fn) = (0, (fn)); 111 macro ANONYMOUS_FUNCTION(fn) = (0, (fn));
112 112
113 # Constants. The compiler constant folds them. 113 # Constants. The compiler constant folds them.
114 define INFINITY = (1/0); 114 define INFINITY = (1/0);
115 define UNDEFINED = (void 0); 115 define UNDEFINED = (void 0);
116 116
117 # Macros implemented in Python. 117 # Macros implemented in Python.
118 python macro CHAR_CODE(str) = ord(str[1]); 118 python macro CHAR_CODE(str) = ord(str[1]);
119 119
120 # Constants used on an array to implement the properties of the RegExp object. 120 # Layout of internal RegExpLastMatchInfo object.
121 define REGEXP_NUMBER_OF_CAPTURES = 0; 121 define REGEXP_NUMBER_OF_CAPTURES = 0;
122 define REGEXP_LAST_SUBJECT = 1;
123 define REGEXP_LAST_INPUT = 2;
122 define REGEXP_FIRST_CAPTURE = 3; 124 define REGEXP_FIRST_CAPTURE = 3;
125 define CAPTURE0 = 3; # Aliases REGEXP_FIRST_CAPTURE.
126 define CAPTURE1 = 4;
127
128 macro NUMBER_OF_CAPTURES(array) = ((array)[REGEXP_NUMBER_OF_CAPTURES]);
129 macro LAST_SUBJECT(array) = ((array)[REGEXP_LAST_SUBJECT]);
130 macro LAST_INPUT(array) = ((array)[REGEXP_LAST_INPUT]);
131 macro CAPTURE(index) = (REGEXP_FIRST_CAPTURE + (index));
123 132
124 # Macros for internal slot access. 133 # Macros for internal slot access.
125 macro REGEXP_GLOBAL(regexp) = (%_RegExpFlags(regexp) & 1); 134 macro REGEXP_GLOBAL(regexp) = (%_RegExpFlags(regexp) & 1);
126 macro REGEXP_IGNORE_CASE(regexp) = (%_RegExpFlags(regexp) & 2); 135 macro REGEXP_IGNORE_CASE(regexp) = (%_RegExpFlags(regexp) & 2);
127 macro REGEXP_MULTILINE(regexp) = (%_RegExpFlags(regexp) & 4); 136 macro REGEXP_MULTILINE(regexp) = (%_RegExpFlags(regexp) & 4);
128 macro REGEXP_STICKY(regexp) = (%_RegExpFlags(regexp) & 8); 137 macro REGEXP_STICKY(regexp) = (%_RegExpFlags(regexp) & 8);
129 macro REGEXP_UNICODE(regexp) = (%_RegExpFlags(regexp) & 16); 138 macro REGEXP_UNICODE(regexp) = (%_RegExpFlags(regexp) & 16);
130 macro REGEXP_SOURCE(regexp) = (%_RegExpSource(regexp)); 139 macro REGEXP_SOURCE(regexp) = (%_RegExpSource(regexp));
131 140
132 # We can't put macros in macros so we use constants here.
133 # REGEXP_NUMBER_OF_CAPTURES
134 macro NUMBER_OF_CAPTURES(array) = ((array)[0]);
135
136 # Last input and last subject of regexp matches.
137 define LAST_SUBJECT_INDEX = 1;
138 macro LAST_SUBJECT(array) = ((array)[1]);
139 macro LAST_INPUT(array) = ((array)[2]);
140
141 # REGEXP_FIRST_CAPTURE
142 macro CAPTURE(index) = (3 + (index));
143 define CAPTURE0 = 3;
144 define CAPTURE1 = 4;
145
146 # For the regexp capture override array. This has the same 141 # For the regexp capture override array. This has the same
147 # format as the arguments to a function called from 142 # format as the arguments to a function called from
148 # String.prototype.replace. 143 # String.prototype.replace.
149 macro OVERRIDE_MATCH(override) = ((override)[0]); 144 macro OVERRIDE_MATCH(override) = ((override)[0]);
150 macro OVERRIDE_POS(override) = ((override)[(override).length - 2]); 145 macro OVERRIDE_POS(override) = ((override)[(override).length - 2]);
151 macro OVERRIDE_SUBJECT(override) = ((override)[(override).length - 1]); 146 macro OVERRIDE_SUBJECT(override) = ((override)[(override).length - 1]);
152 # 1-based so index of 1 returns the first capture 147 # 1-based so index of 1 returns the first capture
153 macro OVERRIDE_CAPTURE(override, index) = ((override)[(index)]); 148 macro OVERRIDE_CAPTURE(override, index) = ((override)[(index)]);
154 149
155 # For messages.js 150 # For messages.js
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 define kSloppyModeBlockScopedFunctionRedefinition = 22; 223 define kSloppyModeBlockScopedFunctionRedefinition = 22;
229 define kForInInitializer = 23; 224 define kForInInitializer = 23;
230 define kArrayProtectorDirtied = 24; 225 define kArrayProtectorDirtied = 24;
231 define kArraySpeciesModified = 25; 226 define kArraySpeciesModified = 25;
232 define kArrayPrototypeConstructorModified = 26; 227 define kArrayPrototypeConstructorModified = 26;
233 define kArrayInstanceProtoModified = 27; 228 define kArrayInstanceProtoModified = 27;
234 define kArrayInstanceConstructorModified = 28; 229 define kArrayInstanceConstructorModified = 28;
235 define kLegacyFunctionDeclaration = 29; 230 define kLegacyFunctionDeclaration = 29;
236 define kRegExpPrototypeSourceGetter = 30; 231 define kRegExpPrototypeSourceGetter = 30;
237 define kRegExpPrototypeOldFlagGetter = 31; 232 define kRegExpPrototypeOldFlagGetter = 31;
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/js/regexp.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698