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

Side by Side Diff: Source/bindings/core/dart/DartUtilities.cpp

Issue 1637083003: Added issue on crashing Dartium 45 pausing and remove method not used. (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/2454_1
Patch Set: Created 4 years, 11 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 | « Source/bindings/core/dart/DartUtilities.h ('k') | no next file » | 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, Google Inc. 1 // Copyright 2011, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 if (minJSInteger <= value && value <= maxJSInteger) { 432 if (minJSInteger <= value && value <= maxJSInteger) {
433 int64_t intValue = static_cast<int64_t>(value); 433 int64_t intValue = static_cast<int64_t>(value);
434 if (value == intValue) 434 if (value == intValue)
435 return intToDart(intValue); 435 return intToDart(intValue);
436 } 436 }
437 return doubleToDart(value); 437 return doubleToDart(value);
438 } 438 }
439 439
440 ScriptValue DartUtilities::dartToScriptValue(Dart_Handle object) 440 ScriptValue DartUtilities::dartToScriptValue(Dart_Handle object)
441 { 441 {
442 // TODO(terry): Added bug per JacobR - he thinks it would be better to use
443 // DartHandleProxy probably pressing pause crashes Dartium 45.
444 // See issue: https://github.com/dart-lang/sdk/issues/25589
442 Dart_Handle exception = 0; 445 Dart_Handle exception = 0;
443 ScriptState* v8ScriptState = currentDartScriptState()->v8ScriptState(); 446 ScriptState* v8ScriptState = currentDartScriptState()->v8ScriptState();
444 v8::Handle<v8::Value> value = V8Converter::toV8(object, exception); 447 v8::Handle<v8::Value> value = V8Converter::toV8(object, exception);
445 if (exception) 448 if (exception)
446 return ScriptValue(v8ScriptState, v8::Undefined(v8ScriptState->isolate() )); 449 return ScriptValue(v8ScriptState, v8::Undefined(v8ScriptState->isolate() ));
447 ASSERT(!value.IsEmpty()); 450 ASSERT(!value.IsEmpty());
448 451
449 return ScriptValue(v8ScriptState, value); 452 return ScriptValue(v8ScriptState, value);
450 } 453 }
451 454
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 if (!dartDOMData->rootScriptState()) { 1099 if (!dartDOMData->rootScriptState()) {
1097 DartController* controller = DartController::retrieve(dartDOMData->scrip tExecutionContext()); 1100 DartController* controller = DartController::retrieve(dartDOMData->scrip tExecutionContext());
1098 intptr_t libraryId = DartUtilities::libraryHandleToLibraryId(Dart_RootLi brary()); 1101 intptr_t libraryId = DartUtilities::libraryHandleToLibraryId(Dart_RootLi brary());
1099 DartScriptState* scriptState = controller->lookupScriptState(Dart_Curren tIsolate(), currentV8Context(), libraryId); 1102 DartScriptState* scriptState = controller->lookupScriptState(Dart_Curren tIsolate(), currentV8Context(), libraryId);
1100 dartDOMData->setRootScriptState(scriptState); 1103 dartDOMData->setRootScriptState(scriptState);
1101 return scriptState; 1104 return scriptState;
1102 } 1105 }
1103 return dartDOMData->rootScriptState(); 1106 return dartDOMData->rootScriptState();
1104 } 1107 }
1105 1108
1106 PassRefPtr<ScriptArguments> DartUtilities::createScriptArguments(Dart_Handle arg ument, Dart_Handle& exception)
1107 {
1108 Vector<ScriptValue> arguments;
1109 arguments.append(DartUtilities::dartToScriptValue(argument));
1110 return ScriptArguments::create(DartUtilities::currentDartScriptState()->v8Sc riptState(), arguments);
1111 }
1112
1113 static PassRefPtr<ScriptCallStack> createScriptCallStackFromStackTrace(Dart_Stac kTrace stackTrace) 1109 static PassRefPtr<ScriptCallStack> createScriptCallStackFromStackTrace(Dart_Stac kTrace stackTrace)
1114 { 1110 {
1115 uintptr_t frameCount = 0; 1111 uintptr_t frameCount = 0;
1116 Dart_Handle result = Dart_StackTraceLength(stackTrace, reinterpret_cast<intp tr_t*>(&frameCount)); 1112 Dart_Handle result = Dart_StackTraceLength(stackTrace, reinterpret_cast<intp tr_t*>(&frameCount));
1117 if (Dart_IsError(result)) 1113 if (Dart_IsError(result))
1118 return nullptr; 1114 return nullptr;
1119 1115
1120 if (frameCount > ScriptCallStack::maxCallStackSizeToCapture) 1116 if (frameCount > ScriptCallStack::maxCallStackSizeToCapture)
1121 frameCount = ScriptCallStack::maxCallStackSizeToCapture; 1117 frameCount = ScriptCallStack::maxCallStackSizeToCapture;
1122 1118
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 if (!v) { 1393 if (!v) {
1398 return 0; 1394 return 0;
1399 } 1395 }
1400 ASSERT(valueLen > 0 && static_cast<size_t>(valueLen) > strlen(v)); 1396 ASSERT(valueLen > 0 && static_cast<size_t>(valueLen) > strlen(v));
1401 strncpy(value, v, valueLen); 1397 strncpy(value, v, valueLen);
1402 value[valueLen - 1] = '\0'; 1398 value[valueLen - 1] = '\0';
1403 return strlen(value); 1399 return strlen(value);
1404 #endif 1400 #endif
1405 } 1401 }
1406 } 1402 }
OLDNEW
« no previous file with comments | « Source/bindings/core/dart/DartUtilities.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698