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

Side by Side Diff: src/objects-inl.h

Issue 7003022: Allow strict mode flag as extraicstate for keyed external array store ic (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 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 | « no previous file | test/mjsunit/regress/regress-1383.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 2767 matching lines...) Expand 10 before | Expand all | Expand 10 after
2778 ExtraICState extra_ic_state, 2778 ExtraICState extra_ic_state,
2779 PropertyType type, 2779 PropertyType type,
2780 int argc, 2780 int argc,
2781 InlineCacheHolderFlag holder) { 2781 InlineCacheHolderFlag holder) {
2782 // Extra IC state is only allowed for monomorphic call IC stubs 2782 // Extra IC state is only allowed for monomorphic call IC stubs
2783 // or for store IC stubs. 2783 // or for store IC stubs.
2784 ASSERT(extra_ic_state == kNoExtraICState || 2784 ASSERT(extra_ic_state == kNoExtraICState ||
2785 (kind == CALL_IC && (ic_state == MONOMORPHIC || 2785 (kind == CALL_IC && (ic_state == MONOMORPHIC ||
2786 ic_state == MONOMORPHIC_PROTOTYPE_FAILURE)) || 2786 ic_state == MONOMORPHIC_PROTOTYPE_FAILURE)) ||
2787 (kind == STORE_IC) || 2787 (kind == STORE_IC) ||
2788 (kind == KEYED_STORE_IC)); 2788 (kind == KEYED_STORE_IC) ||
2789 (kind == KEYED_EXTERNAL_ARRAY_STORE_IC));
2789 // Compute the bit mask. 2790 // Compute the bit mask.
2790 int bits = kind << kFlagsKindShift; 2791 int bits = kind << kFlagsKindShift;
2791 if (in_loop) bits |= kFlagsICInLoopMask; 2792 if (in_loop) bits |= kFlagsICInLoopMask;
2792 bits |= ic_state << kFlagsICStateShift; 2793 bits |= ic_state << kFlagsICStateShift;
2793 bits |= type << kFlagsTypeShift; 2794 bits |= type << kFlagsTypeShift;
2794 bits |= extra_ic_state << kFlagsExtraICStateShift; 2795 bits |= extra_ic_state << kFlagsExtraICStateShift;
2795 bits |= argc << kFlagsArgumentsCountShift; 2796 bits |= argc << kFlagsArgumentsCountShift;
2796 if (holder == PROTOTYPE_MAP) bits |= kFlagsCacheInPrototypeMapMask; 2797 if (holder == PROTOTYPE_MAP) bits |= kFlagsCacheInPrototypeMapMask;
2797 // Cast to flags and validate result before returning it. 2798 // Cast to flags and validate result before returning it.
2798 Flags result = static_cast<Flags>(bits); 2799 Flags result = static_cast<Flags>(bits);
(...skipping 1406 matching lines...) Expand 10 before | Expand all | Expand 10 after
4205 #undef WRITE_INT_FIELD 4206 #undef WRITE_INT_FIELD
4206 #undef READ_SHORT_FIELD 4207 #undef READ_SHORT_FIELD
4207 #undef WRITE_SHORT_FIELD 4208 #undef WRITE_SHORT_FIELD
4208 #undef READ_BYTE_FIELD 4209 #undef READ_BYTE_FIELD
4209 #undef WRITE_BYTE_FIELD 4210 #undef WRITE_BYTE_FIELD
4210 4211
4211 4212
4212 } } // namespace v8::internal 4213 } } // namespace v8::internal
4213 4214
4214 #endif // V8_OBJECTS_INL_H_ 4215 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-1383.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698