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

Side by Side Diff: src/objects.h

Issue 2084017: Version 2.2.11... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 10 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « src/mips/virtual-frame-mips.cc ('k') | src/objects.cc » ('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 3983 matching lines...) Expand 10 before | Expand all | Expand 10 after
3994 // Such strings may appear when the embedder prefers two-byte 3994 // Such strings may appear when the embedder prefers two-byte
3995 // representations even for ascii data. 3995 // representations even for ascii data.
3996 inline bool IsExternalTwoByteStringWithAsciiChars(); 3996 inline bool IsExternalTwoByteStringWithAsciiChars();
3997 3997
3998 // Get and set individual two byte chars in the string. 3998 // Get and set individual two byte chars in the string.
3999 inline void Set(int index, uint16_t value); 3999 inline void Set(int index, uint16_t value);
4000 // Get individual two byte char in the string. Repeated calls 4000 // Get individual two byte char in the string. Repeated calls
4001 // to this method are not efficient unless the string is flat. 4001 // to this method are not efficient unless the string is flat.
4002 inline uint16_t Get(int index); 4002 inline uint16_t Get(int index);
4003 4003
4004 // Try to flatten the top level ConsString that is hiding behind this 4004 // Try to flatten the string. Checks first inline to see if it is
4005 // string. This is a no-op unless the string is a ConsString. Flatten 4005 // necessary. Does nothing if the string is not a cons string.
4006 // mutates the ConsString and might return a failure. 4006 // Flattening allocates a sequential string with the same data as
4007 Object* SlowTryFlatten(PretenureFlag pretenure); 4007 // the given string and mutates the cons string to a degenerate
4008 // form, where the first component is the new sequential string and
4009 // the second component is the empty string. If allocation fails,
4010 // this function returns a failure. If flattening succeeds, this
4011 // function returns the sequential string that is now the first
4012 // component of the cons string.
4013 //
4014 // Degenerate cons strings are handled specially by the garbage
4015 // collector (see IsShortcutCandidate).
4016 //
4017 // Use FlattenString from Handles.cc to flatten even in case an
4018 // allocation failure happens.
4019 inline Object* TryFlatten(PretenureFlag pretenure = NOT_TENURED);
4008 4020
4009 // Try to flatten the string. Checks first inline to see if it is necessary. 4021 // Convenience function. Has exactly the same behavior as
4010 // Do not handle allocation failures. After calling TryFlatten, the 4022 // TryFlatten(), except in the case of failure returns the original
4011 // string could still be a ConsString, in which case a failure is returned. 4023 // string.
4012 // Use FlattenString from Handles.cc to be sure to flatten. 4024 inline String* TryFlattenGetString(PretenureFlag pretenure = NOT_TENURED);
4013 inline Object* TryFlatten(PretenureFlag pretenure = NOT_TENURED);
4014 4025
4015 Vector<const char> ToAsciiVector(); 4026 Vector<const char> ToAsciiVector();
4016 Vector<const uc16> ToUC16Vector(); 4027 Vector<const uc16> ToUC16Vector();
4017 4028
4018 // Mark the string as an undetectable object. It only applies to 4029 // Mark the string as an undetectable object. It only applies to
4019 // ascii and two byte string types. 4030 // ascii and two byte string types.
4020 bool MarkAsUndetectable(); 4031 bool MarkAsUndetectable();
4021 4032
4022 // Return a substring. 4033 // Return a substring.
4023 Object* SubString(int from, int to, PretenureFlag pretenure = NOT_TENURED); 4034 Object* SubString(int from, int to, PretenureFlag pretenure = NOT_TENURED);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
4190 static inline const unibrow::byte* ReadBlock(String* input, 4201 static inline const unibrow::byte* ReadBlock(String* input,
4191 ReadBlockBuffer* buffer, 4202 ReadBlockBuffer* buffer,
4192 unsigned* offset, 4203 unsigned* offset,
4193 unsigned max_chars); 4204 unsigned max_chars);
4194 static void ReadBlockIntoBuffer(String* input, 4205 static void ReadBlockIntoBuffer(String* input,
4195 ReadBlockBuffer* buffer, 4206 ReadBlockBuffer* buffer,
4196 unsigned* offset_ptr, 4207 unsigned* offset_ptr,
4197 unsigned max_chars); 4208 unsigned max_chars);
4198 4209
4199 private: 4210 private:
4211 // Try to flatten the top level ConsString that is hiding behind this
4212 // string. This is a no-op unless the string is a ConsString. Flatten
4213 // mutates the ConsString and might return a failure.
4214 Object* SlowTryFlatten(PretenureFlag pretenure);
4215
4200 // Slow case of String::Equals. This implementation works on any strings 4216 // Slow case of String::Equals. This implementation works on any strings
4201 // but it is most efficient on strings that are almost flat. 4217 // but it is most efficient on strings that are almost flat.
4202 bool SlowEquals(String* other); 4218 bool SlowEquals(String* other);
4203 4219
4204 // Slow case of AsArrayIndex. 4220 // Slow case of AsArrayIndex.
4205 bool SlowAsArrayIndex(uint32_t* index); 4221 bool SlowAsArrayIndex(uint32_t* index);
4206 4222
4207 // Compute and set the hash code. 4223 // Compute and set the hash code.
4208 uint32_t ComputeAndSetHash(); 4224 uint32_t ComputeAndSetHash();
4209 4225
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after
5163 } else { 5179 } else {
5164 value &= ~(1 << bit_position); 5180 value &= ~(1 << bit_position);
5165 } 5181 }
5166 return value; 5182 return value;
5167 } 5183 }
5168 }; 5184 };
5169 5185
5170 } } // namespace v8::internal 5186 } } // namespace v8::internal
5171 5187
5172 #endif // V8_OBJECTS_H_ 5188 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips/virtual-frame-mips.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698