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

Side by Side Diff: content/child/v8_value_converter_impl.cc

Issue 2664753002: Remove base::StringValue (Closed)
Patch Set: Rebase Created 3 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium 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 "content/child/v8_value_converter_impl.h" 5 #include "content/child/v8_value_converter_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <cmath> 10 #include <cmath>
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // Normally, this would be an integer, and fall into IsInt32(). But if the 379 // Normally, this would be an integer, and fall into IsInt32(). But if the
380 // value is -0, it's treated internally as a double. Consumers are allowed 380 // value is -0, it's treated internally as a double. Consumers are allowed
381 // to ignore this esoterica and treat it as an integer. 381 // to ignore this esoterica and treat it as an integer.
382 if (convert_negative_zero_to_int_ && val_as_double == 0.0) 382 if (convert_negative_zero_to_int_ && val_as_double == 0.0)
383 return base::MakeUnique<base::Value>(0); 383 return base::MakeUnique<base::Value>(0);
384 return base::MakeUnique<base::Value>(val_as_double); 384 return base::MakeUnique<base::Value>(val_as_double);
385 } 385 }
386 386
387 if (val->IsString()) { 387 if (val->IsString()) {
388 v8::String::Utf8Value utf8(val); 388 v8::String::Utf8Value utf8(val);
389 return base::MakeUnique<base::StringValue>( 389 return base::MakeUnique<base::Value>(std::string(*utf8, utf8.length()));
390 std::string(*utf8, utf8.length()));
391 } 390 }
392 391
393 if (val->IsUndefined()) { 392 if (val->IsUndefined()) {
394 if (strategy_) { 393 if (strategy_) {
395 std::unique_ptr<base::Value> out; 394 std::unique_ptr<base::Value> out;
396 if (strategy_->FromV8Undefined(&out)) 395 if (strategy_->FromV8Undefined(&out))
397 return out; 396 return out;
398 } 397 }
399 // JSON.stringify ignores undefined. 398 // JSON.stringify ignores undefined.
400 return nullptr; 399 return nullptr;
401 } 400 }
402 401
403 if (val->IsDate()) { 402 if (val->IsDate()) {
404 if (!date_allowed_) 403 if (!date_allowed_)
405 // JSON.stringify would convert this to a string, but an object is more 404 // JSON.stringify would convert this to a string, but an object is more
406 // consistent within this class. 405 // consistent within this class.
407 return FromV8Object(val->ToObject(isolate), state, isolate); 406 return FromV8Object(val->ToObject(isolate), state, isolate);
408 v8::Date* date = v8::Date::Cast(*val); 407 v8::Date* date = v8::Date::Cast(*val);
409 return base::MakeUnique<base::Value>(date->ValueOf() / 1000.0); 408 return base::MakeUnique<base::Value>(date->ValueOf() / 1000.0);
410 } 409 }
411 410
412 if (val->IsRegExp()) { 411 if (val->IsRegExp()) {
413 if (!reg_exp_allowed_) 412 if (!reg_exp_allowed_)
414 // JSON.stringify converts to an object. 413 // JSON.stringify converts to an object.
415 return FromV8Object(val.As<v8::Object>(), state, isolate); 414 return FromV8Object(val.As<v8::Object>(), state, isolate);
416 return base::MakeUnique<base::StringValue>(*v8::String::Utf8Value(val)); 415 return base::MakeUnique<base::Value>(*v8::String::Utf8Value(val));
417 } 416 }
418 417
419 // v8::Value doesn't have a ToArray() method for some reason. 418 // v8::Value doesn't have a ToArray() method for some reason.
420 if (val->IsArray()) 419 if (val->IsArray())
421 return FromV8Array(val.As<v8::Array>(), state, isolate); 420 return FromV8Array(val.As<v8::Array>(), state, isolate);
422 421
423 if (val->IsFunction()) { 422 if (val->IsFunction()) {
424 if (!function_allowed_) 423 if (!function_allowed_)
425 // JSON.stringify refuses to convert function(){}. 424 // JSON.stringify refuses to convert function(){}.
426 return nullptr; 425 return nullptr;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 continue; 615 continue;
617 616
618 result->SetWithoutPathExpansion(std::string(*name_utf8, name_utf8.length()), 617 result->SetWithoutPathExpansion(std::string(*name_utf8, name_utf8.length()),
619 std::move(child)); 618 std::move(child));
620 } 619 }
621 620
622 return std::move(result); 621 return std::move(result);
623 } 622 }
624 623
625 } // namespace content 624 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/tracing/tracing_ui.cc ('k') | content/child/v8_value_converter_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698