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

Side by Side Diff: src/factory.cc

Issue 528993002: First step to cleanup the power-of-2 mess. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: clang-format Created 6 years, 3 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/conversions-inl.h ('k') | src/frames.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/factory.h" 5 #include "src/factory.h"
6 6
7 #include "src/allocation-site-scopes.h" 7 #include "src/allocation-site-scopes.h"
8 #include "src/base/bits.h"
8 #include "src/conversions.h" 9 #include "src/conversions.h"
9 #include "src/isolate-inl.h" 10 #include "src/isolate-inl.h"
10 #include "src/macro-assembler.h" 11 #include "src/macro-assembler.h"
11 12
12 namespace v8 { 13 namespace v8 {
13 namespace internal { 14 namespace internal {
14 15
15 16
16 template<typename T> 17 template<typename T>
17 Handle<T> Factory::New(Handle<Map> map, AllocationSpace space) { 18 Handle<T> Factory::New(Handle<Map> map, AllocationSpace space) {
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 if (StringTable::LookupTwoCharsStringIfExists(isolate, c1, c2). 429 if (StringTable::LookupTwoCharsStringIfExists(isolate, c1, c2).
429 ToHandle(&result)) { 430 ToHandle(&result)) {
430 return result; 431 return result;
431 } 432 }
432 } 433 }
433 434
434 // Now we know the length is 2, we might as well make use of that fact 435 // Now we know the length is 2, we might as well make use of that fact
435 // when building the new string. 436 // when building the new string.
436 if (static_cast<unsigned>(c1 | c2) <= String::kMaxOneByteCharCodeU) { 437 if (static_cast<unsigned>(c1 | c2) <= String::kMaxOneByteCharCodeU) {
437 // We can do this. 438 // We can do this.
438 DCHECK(IsPowerOf2(String::kMaxOneByteCharCodeU + 1)); // because of this. 439 DCHECK(base::bits::IsPowerOfTwo32(String::kMaxOneByteCharCodeU +
440 1)); // because of this.
439 Handle<SeqOneByteString> str = 441 Handle<SeqOneByteString> str =
440 isolate->factory()->NewRawOneByteString(2).ToHandleChecked(); 442 isolate->factory()->NewRawOneByteString(2).ToHandleChecked();
441 uint8_t* dest = str->GetChars(); 443 uint8_t* dest = str->GetChars();
442 dest[0] = static_cast<uint8_t>(c1); 444 dest[0] = static_cast<uint8_t>(c1);
443 dest[1] = static_cast<uint8_t>(c2); 445 dest[1] = static_cast<uint8_t>(c2);
444 return str; 446 return str;
445 } else { 447 } else {
446 Handle<SeqTwoByteString> str = 448 Handle<SeqTwoByteString> str =
447 isolate->factory()->NewRawTwoByteString(2).ToHandleChecked(); 449 isolate->factory()->NewRawTwoByteString(2).ToHandleChecked();
448 uc16* dest = str->GetChars(); 450 uc16* dest = str->GetChars();
(...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after
2385 return Handle<Object>::null(); 2387 return Handle<Object>::null();
2386 } 2388 }
2387 2389
2388 2390
2389 Handle<Object> Factory::ToBoolean(bool value) { 2391 Handle<Object> Factory::ToBoolean(bool value) {
2390 return value ? true_value() : false_value(); 2392 return value ? true_value() : false_value();
2391 } 2393 }
2392 2394
2393 2395
2394 } } // namespace v8::internal 2396 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/conversions-inl.h ('k') | src/frames.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698