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

Unified Diff: runtime/vm/report.cc

Issue 1690903003: Remove support for Javascript warnings in the VM. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/report.h ('k') | runtime/vm/report_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/report.cc
diff --git a/runtime/vm/report.cc b/runtime/vm/report.cc
index 42a47d9d2598ff6425a106d48c450d79a0db614b..21bbdc812b284305ba41f6c1a88087afa4d9bdaf 100644
--- a/runtime/vm/report.cc
+++ b/runtime/vm/report.cc
@@ -14,15 +14,9 @@
namespace dart {
-DEFINE_FLAG(int, stacktrace_depth_on_warning, 5,
- "Maximal number of stack frames to print after a runtime warning.");
DEFINE_FLAG(bool, silent_warnings, false, "Silence warnings.");
-DEFINE_FLAG(bool, warn_on_javascript_compatibility, false,
- "Warn on incompatibilities between vm and dart2js.");
DEFINE_FLAG(bool, warning_as_error, false, "Treat warnings as errors.");
-DECLARE_FLAG(bool, always_megamorphic_calls);
-
RawString* Report::PrependSnippet(Kind kind,
const Script& script,
TokenPosition token_pos,
@@ -31,7 +25,6 @@ RawString* Report::PrependSnippet(Kind kind,
const char* message_header;
switch (kind) {
case kWarning: message_header = "warning"; break;
- case kJSWarning: message_header = "javascript compatibility warning"; break;
case kError: message_header = "error"; break;
case kMalformedType: message_header = "malformed type"; break;
case kMalboundedType: message_header = "malbounded type"; break;
@@ -159,17 +152,6 @@ void Report::MessageV(Kind kind,
const String& snippet_msg = String::Handle(
PrependSnippet(kind, script, token_pos, report_after_token, msg));
OS::Print("%s", snippet_msg.ToCString());
- if (kind == kJSWarning) {
- TraceJSWarning(script, token_pos, msg);
- // Do not print stacktrace if we have not executed Dart code yet.
- if (Thread::Current()->top_exit_frame_info() != 0) {
- const Stacktrace& stacktrace =
- Stacktrace::Handle(Exceptions::CurrentStacktrace());
- intptr_t idx = 0;
- OS::Print("%s", stacktrace.ToCStringInternal(
- &idx, FLAG_stacktrace_depth_on_warning));
- }
- }
return;
}
}
@@ -179,96 +161,9 @@ void Report::MessageV(Kind kind,
script, token_pos, report_after_token,
kind, Heap::kNew,
format, args));
- if (kind == kJSWarning) {
- Exceptions::ThrowJavascriptCompatibilityError(error.ToErrorCString());
- UNREACHABLE();
- }
LongJump(error);
UNREACHABLE();
}
-
-void Report::JSWarningFromNative(bool is_static_native, const char* msg) {
- DartFrameIterator iterator;
- iterator.NextFrame(); // Skip native call.
- StackFrame* caller_frame = iterator.NextFrame();
- ASSERT(caller_frame != NULL);
- const Code& caller_code = Code::Handle(caller_frame->LookupDartCode());
- ASSERT(!caller_code.IsNull());
- const uword caller_pc = caller_frame->pc();
- ICData& ic_data = ICData::Handle();
- if (is_static_native) {
- // Assume an unoptimized static call. Optimization was prevented.
- CodePatcher::GetUnoptimizedStaticCallAt(caller_pc, caller_code, &ic_data);
- } else {
- if (FLAG_always_megamorphic_calls) {
- Report::JSWarningFromFrame(caller_frame, msg);
- return;
- } else {
- // Assume an instance call.
- CodePatcher::GetInstanceCallAt(caller_pc, caller_code, &ic_data);
- }
- }
- ASSERT(!ic_data.IsNull());
- // Report warning only if not already reported at this location.
- if (!ic_data.IssuedJSWarning()) {
- ic_data.SetIssuedJSWarning();
- Report::JSWarningFromFrame(caller_frame, msg);
- }
-}
-
-
-void Report::JSWarningFromIC(const ICData& ic_data, const char* msg) {
- DartFrameIterator iterator;
- StackFrame* caller_frame = iterator.NextFrame();
- ASSERT(caller_frame != NULL);
- // Report warning only if not already reported at this location.
- if (!ic_data.IssuedJSWarning()) {
- ic_data.SetIssuedJSWarning();
- JSWarningFromFrame(caller_frame, msg);
- }
-}
-
-
-void Report::JSWarningFromFrame(StackFrame* caller_frame, const char* msg) {
- ASSERT(caller_frame != NULL);
- ASSERT(FLAG_warn_on_javascript_compatibility);
- if (FLAG_silent_warnings) return;
- Zone* zone = Thread::Current()->zone();
- const Code& caller_code = Code::Handle(zone,
- caller_frame->LookupDartCode());
- ASSERT(!caller_code.IsNull());
- const uword caller_pc = caller_frame->pc();
- const TokenPosition token_pos = caller_code.GetTokenIndexOfPC(caller_pc);
- const Function& caller = Function::Handle(zone, caller_code.function());
- const Script& script = Script::Handle(zone, caller.script());
- MessageF(kJSWarning, script, token_pos, Report::AtLocation, "%s", msg);
-}
-
-
-void Report::TraceJSWarning(const Script& script,
- TokenPosition token_pos,
- const String& message) {
- if (!FLAG_support_service) {
- return;
- }
- const int64_t micros = OS::GetCurrentTimeMicros();
- Isolate* isolate = Isolate::Current();
- TraceBuffer* trace_buffer = isolate->trace_buffer();
- if (trace_buffer == NULL) {
- TraceBuffer::Init(isolate);
- trace_buffer = isolate->trace_buffer();
- }
- JSONStream js;
- {
- JSONObject trace_warning(&js);
- trace_warning.AddProperty("type", "JSCompatibilityWarning");
- trace_warning.AddProperty("script", script);
- trace_warning.AddProperty("tokenPos", token_pos);
- trace_warning.AddProperty("message", message);
- }
- trace_buffer->Trace(micros, js.ToCString(), true); // Already escaped.
-}
-
} // namespace dart
« no previous file with comments | « runtime/vm/report.h ('k') | runtime/vm/report_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698