New issue
Advanced search Search tips

Issue 707503 link

Starred by 5 users

Issue metadata

Status: Duplicate
Merged: issue v8:6190
Owner: ----
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression



Sign in to add a comment

'Uncaught SyntaxError: Unexpected end of arg string' on many sites

Reported by vsemozhe...@gmail.com, Apr 1 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3053.3 Safari/537.36

Steps to reproduce the problem:
Try to interact with the sites mentioned below

What is the expected behavior?
UI is OK

What went wrong?
Starting from 59.0.3057.0 console output is flooded by error 'Uncaught SyntaxError: Unexpected end of arg string'. It is reported on initial loading and then on trying to click on buttons or links configured to work as buttons. This error breaks UI.

Did this work before? Yes till 59.0.3057.0

Chrome version: 59.0.3059.0  Channel: canary
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: 25.0.0.148

Some sites seem to work despite this message (google search, Gmail).

Some sites fall back to default links behavior (Facebook 'See More' links produce location change instead of text unfolding).

Some sites are mostly broken: UI interaction in the inoreader.com are mostly disabled (folder tree or news list traversal); ironically, the issue wizard on the chromiumbugs.appspot.com is also broken (button 'Next' does not work.)
 

Comment 1 by bfu...@gmail.com, Apr 2 2017

This is also happening for me in 59.0.3057.0. It seems to be related to the #enable-javascript-harmony flag(chrome://flags/#enable-javascript-harmony). If I turn this off, then the errors resolve.

A test case where this breaks for me is to open gmail with hangouts enabled. If this flag is enabled, the hangouts panel will never load; if it is disabled, the panel loads normally.
A simple reproducible case:

1. Open the attached test.html
2. Click on the button.
3. See the error message and the code, like in the attached test.png.
test.html
179 bytes View Download
test.png
14.1 KB View Download

Comment 4 by ajha@chromium.org, Apr 3 2017

Labels: Needs-Triage-M59 Needs-Bisect
Cc: jmukthavaram@chromium.org
Labels: Needs-Feedback
Unable to reproduce the issue on Windows 7, Mac 10.12.4 & Ubuntu 14.04 using chrome reported version-59.0.3059.0 & latest Canary-59.0.3060.0 as per steps mentioned in comment#3.
No error observed in devtools->Console when user click on 'test' button.
Please find the attached screencast for reference.
Thank you!!
Note:
Verified on 59.0.3057.0 build also.
707503-Win.mp4
564 KB View Download
Did you enable #enable-javascript-harmony flag in chrome://flags/#enable-javascript-harmony?
Project Member

Comment 7 by sheriffbot@chromium.org, Apr 3 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "jmukthavaram@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 8 by woxxom@gmail.com, Apr 3 2017

For some reason the bug cannot be reproduced in waterfall snapshots (at least on Windows) from https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html

Reproducible in the official Google Chrome canary 59.0.3060.0 64-bit r461328 on Windows 7x64.
Suspecting https://crrev.com/2156303002 which added this error message.
The only place that emits it is in v8::parser.cc:
https://cs.chromium.org/chromium/src/v8/src/parsing/parser.cc?l=3236&rcl=71860a8cc1369a36975edd415cf735f6c9661993

I've set a breakpoint at that line and got this callstack:

>	chrome_child.dll!v8::internal::Parser::ParseFunction(const v8::internal::AstRawString * function_name, int pos, v8::internal::FunctionKind kind, v8::internal::FunctionLiteral::FunctionType function_type, v8::internal::DeclarationScope * function_scope, int * num_parameters, int * function_length, bool * has_duplicate_parameters, int * expected_property_count, bool * ok) Line 3234	C++
 	chrome_child.dll!v8::internal::Parser::ParseFunctionLiteral(const v8::internal::AstRawString * function_name, v8::internal::Scanner::Location function_name_location, v8::internal::FunctionNameValidity function_name_validity, v8::internal::FunctionKind kind, int function_token_pos, v8::internal::FunctionLiteral::FunctionType function_type, v8::internal::LanguageMode language_mode, bool * ok) Line 2722	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseMemberExpression(bool * is_async, bool * ok) Line 3414	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseMemberWithNewPrefixesExpression(bool * is_async, bool * ok) Line 3348	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseLeftHandSideExpression(bool * ok) Line 3155	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParsePostfixExpression(bool * ok) Line 3125	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseUnaryExpression(bool * ok) Line 3116	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseConditionalExpression(bool accept_IN, bool * ok) Line 2956	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseAssignmentExpression(bool accept_IN, bool * ok) Line 2730	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseExpressionCoverGrammar(bool accept_IN, bool * ok) Line 1923	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParsePrimaryExpression(bool * is_async, bool * ok) Line 1840	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseMemberExpression(bool * is_async, bool * ok) Line 3417	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseMemberWithNewPrefixesExpression(bool * is_async, bool * ok) Line 3348	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseLeftHandSideExpression(bool * ok) Line 3155	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParsePostfixExpression(bool * ok) Line 3125	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseUnaryExpression(bool * ok) Line 3116	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseConditionalExpression(bool accept_IN, bool * ok) Line 2956	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseAssignmentExpression(bool accept_IN, bool * ok) Line 2730	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseExpressionCoverGrammar(bool accept_IN, bool * ok) Line 1923	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseExpressionOrLabelledStatement(v8::internal::ZoneList<v8::internal::AstRawString const *> * labels, v8::internal::AllowLabelledFunctionStatement allow_function, bool * ok) Line 5003	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseStatement(v8::internal::ZoneList<v8::internal::AstRawString const *> * labels, v8::internal::AllowLabelledFunctionStatement allow_function, bool * ok) Line 4847	C++
 	chrome_child.dll!v8::internal::ParserBase<v8::internal::Parser>::ParseStatementList(v8::internal::ZoneList<v8::internal::Statement *> * body, int end_token, bool ok, bool *) Line 4650	C++
 	chrome_child.dll!v8::internal::Parser::DoParseProgram(v8::internal::ParseInfo * info) Line 736	C++
 	chrome_child.dll!v8::internal::Parser::ParseProgram(v8::internal::Isolate * isolate, v8::internal::ParseInfo * info) Line 644	C++
 	chrome_child.dll!v8::internal::parsing::ParseProgram(v8::internal::ParseInfo * info, v8::internal::Isolate * isolate, bool internalize) Line 29	C++
 	chrome_child.dll!v8::internal::`anonymous namespace'::CompileToplevel(v8::internal::CompilationInfo * info) Line 1136	C++
 	chrome_child.dll!v8::internal::Compiler::GetFunctionFromEval(v8::internal::Handle<v8::internal::String> source, v8::internal::Handle<v8::internal::SharedFunctionInfo> outer_info, v8::internal::Handle<v8::internal::Context> context, v8::internal::LanguageMode language_mode, v8::internal::ParseRestriction restriction, int parameters_end_pos, int eval_scope_position, int eval_position, int line_offset, int column_offset, v8::internal::Handle<v8::internal::Object> script_name, v8::ScriptOriginOptions options) Line 1502	C++
 	chrome_child.dll!v8::ScriptCompiler::CompileFunctionInContext(v8::Local<v8::Context> v8_context, v8::ScriptCompiler::Source * source, unsigned __int64 arguments_count, v8::Local<v8::String> * arguments, unsigned __int64 context_extension_count, v8::Local<v8::Object> * context_extensions) Line 2361	C++
 	chrome_child.dll!blink::V8LazyEventListener::compileScript(blink::ScriptState * scriptState, blink::ExecutionContext * executionContext) Line 198	C++
 	chrome_child.dll!blink::V8LazyEventListener::getListenerObjectInternal(blink::ExecutionContext * executionContext) Line 156	C++
 	chrome_child.dll!blink::V8LazyEventListener::callListenerFunction(blink::ScriptState * scriptState, v8::Local<v8::Value> jsEvent, blink::Event * event) Line 89	C++
 	chrome_child.dll!blink::V8AbstractEventListener::invokeEventHandler(blink::ScriptState * scriptState, blink::Event * event, v8::Local<v8::Value> jsEvent) Line 142	C++
 	chrome_child.dll!blink::V8AbstractEventListener::handleEvent(blink::ScriptState * scriptState, blink::Event * event) Line 103	C++
 	chrome_child.dll!blink::V8AbstractEventListener::handleEvent(blink::ExecutionContext * executionContext, blink::Event * event) Line 90	C++
 	chrome_child.dll!blink::EventTarget::fireEventListeners(blink::Event * event, blink::EventTargetData * d, blink::HeapVector<blink::RegisteredEventListener,1> & entry) Line 716	C++
 	chrome_child.dll!blink::EventTarget::fireEventListeners(blink::Event * event) Line 573	C++
 	chrome_child.dll!blink::Node::handleLocalEvents(blink::Event & event) Line 2068	C++
 	chrome_child.dll!blink::EventDispatcher::dispatch() Line 155	C++
 	chrome_child.dll!blink::MouseEventDispatchMediator::dispatchEvent(blink::EventDispatcher & dispatcher) Line 453	C++
 	chrome_child.dll!blink::EventDispatcher::dispatchEvent(blink::Node & node, blink::EventDispatchMediator * mediator) Line 59	C++
 	chrome_child.dll!blink::MouseEventManager::dispatchMouseEvent(blink::EventTarget * target, const WTF::AtomicString & mouseEventType, const blink::WebMouseEvent & mouseEvent, const WTF::String & canvasRegionId, blink::EventTarget * relatedTarget, bool checkForListener) Line 214	C++
 	chrome_child.dll!blink::MouseEventManager::dispatchMouseClickIfNeeded(const blink::EventWithHitTestResults<blink::WebMouseEvent> & mev) Line 272	C++
 	chrome_child.dll!blink::EventHandler::handleMouseReleaseEvent(const blink::WebMouseEvent & mouseEvent) Line 985	C++
 	chrome_child.dll!blink::PageWidgetEventHandler::handleMouseUp(blink::LocalFrame & mainFrame, const blink::WebMouseEvent & event) Line 258	C++
 	chrome_child.dll!blink::WebViewImpl::handleMouseUp(blink::LocalFrame & mainFrame, const blink::WebMouseEvent & event) Line 588	C++
 	chrome_child.dll!blink::PageWidgetDelegate::handleInputEvent(blink::PageWidgetEventHandler & handler, const blink::WebCoalescedInputEvent & coalescedEvent, blink::LocalFrame * root) Line 169	C++
 	chrome_child.dll!blink::WebViewImpl::handleInputEvent(const blink::WebCoalescedInputEvent & coalescedEvent) Line 2270	C++
 	chrome_child.dll!content::RenderWidgetInputHandler::HandleInputEvent(const blink::WebCoalescedInputEvent & coalesced_event, const ui::LatencyInfo & latency_info, content::InputEventDispatchType dispatch_type) Line 312	C++
 	chrome_child.dll!content::RenderWidget::OnHandleInputEvent(const blink::WebInputEvent * input_event, const std::vector<blink::WebInputEvent const *,std::allocator<blink::WebInputEvent const *> > & coalesced_events, const ui::LatencyInfo & latency_info, content::InputEventDispatchType dispatch_type) Line 816	C++
 	chrome_child.dll!IPC::DispatchToMethod<content::RenderWidget,void (__cdecl content::RenderWidget::*)(blink::WebInputEvent const * __ptr64,std::vector<blink::WebInputEvent const * __ptr64,std::allocator<blink::WebInputEvent const * __ptr64> > const & __ptr64,ui::LatencyInfo const & __ptr64,enum content::InputEventDispatchType) __ptr64,void,std::tuple<blink::WebInputEvent const * __ptr64,std::vector<blink::WebInputEvent const * __ptr64,std::allocator<blink::WebInputEvent const * __ptr64> >,ui::LatencyInfo,enum content::InputEventDispatchType> >(content::RenderWidget * obj, void(content::RenderWidget::*)(const blink::WebInputEvent *, const std::vector<blink::WebInputEvent const *,std::allocator<blink::WebInputEvent const *> > &, const ui::LatencyInfo &, content::InputEventDispatchType) method, void * tuple, const std::tuple<blink::WebInputEvent const *,std::vector<blink::WebInputEvent const *,std::allocator<blink::WebInputEvent const *> >,ui::LatencyInfo,enum content::InputEventDispatchType> &) Line 27	C++
 	chrome_child.dll!IPC::MessageT<InputMsg_HandleInputEvent_Meta,std::tuple<blink::WebInputEvent const * __ptr64,std::vector<blink::WebInputEvent const * __ptr64,std::allocator<blink::WebInputEvent const * __ptr64> >,ui::LatencyInfo,enum content::InputEventDispatchType>,void>::Dispatch<content::RenderWidget,content::RenderWidget,void,void (__cdecl content::RenderWidget::*)(blink::WebInputEvent const * __ptr64,std::vector<blink::WebInputEvent const * __ptr64,std::allocator<blink::WebInputEvent const * __ptr64> > const & __ptr64,ui::LatencyInfo const & __ptr64,enum content::InputEventDispatchType) __ptr64>(const IPC::Message * msg, content::RenderWidget * obj, content::RenderWidget * func, void *) Line 121	C++
 	chrome_child.dll!content::RenderWidget::OnMessageReceived(const IPC::Message & message) Line 630	C++
 	chrome_child.dll!content::RenderViewImpl::OnMessageReceived(const IPC::Message & message) Line 1294	C++
 	chrome_child.dll!content::ChildThreadImpl::OnMessageReceived(const IPC::Message & msg) Line 748	C++
 	chrome_child.dll!base::internal::Invoker<base::internal::BindState<void (__cdecl content::ServiceManagerConnectionImpl::*)(service_manager::Identity const & __ptr64) __ptr64,base::WeakPtr<content::ServiceManagerConnectionImpl> >,void __cdecl(service_manager::Identity const & __ptr64)>::Run(base::internal::BindStateBase * base, const service_manager::Identity & <unbound_args_0>) Line 343	C++
 	chrome_child.dll!content::InputEventFilter::HandleEventOnMainThread(int routing_id, const blink::WebCoalescedInputEvent * event, const ui::LatencyInfo & latency_info, content::InputEventDispatchType dispatch_type) Line 345	C++
 	chrome_child.dll!content::`anonymous namespace'::QueuedWebInputEvent::Dispatch(int routing_id, content::MainThreadEventQueueClient * client) Line 137	C++
 	chrome_child.dll!content::MainThreadEventQueue::DispatchInFlightEvent() Line 395	C++
 	chrome_child.dll!content::MainThreadEventQueue::DispatchEvents() Line 437	C++
 	chrome_child.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 59	C++
 	chrome_child.dll!blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(blink::scheduler::internal::WorkQueue * work_queue, bool is_nested, blink::scheduler::LazyNow time_before_task, base::TimeTicks * time_after_task) Line 542	C++
 	chrome_child.dll!blink::scheduler::TaskQueueManager::DoWork(bool delayed) Line 337	C++
 	chrome_child.dll!base::internal::Invoker<base::internal::BindState<void (__cdecl blink::scheduler::TaskQueueManager::*)(bool) __ptr64,base::WeakPtr<blink::scheduler::TaskQueueManager>,bool>,void __cdecl(void)>::Run(base::internal::BindStateBase * base) Line 343	C++
 	chrome_child.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 59	C++
 	chrome_child.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 424	C++
 	chrome_child.dll!base::MessageLoop::DoWork() Line 527	C++
 	chrome_child.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 34	C++
 	chrome_child.dll!base::RunLoop::Run() Line 38	C++
 	chrome_child.dll!content::RendererMain(const content::MainFunctionParams & parameters) Line 200	C++
 	chrome_child.dll!content::RunNamedProcessTypeMain(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & process_type, const content::MainFunctionParams & main_function_params, content::ContentMainDelegate * delegate) Line 454	C++
 	chrome_child.dll!content::ContentMainRunnerImpl::Run() Line 729	C++
 	chrome_child.dll!service_manager::Main(const service_manager::MainParams & params) Line 179	C++
 	chrome_child.dll!ChromeMain(HINSTANCE__ * instance, sandbox::SandboxInterfaceInfo * sandbox_info, __int64 exe_entry_point_ticks) Line 123	C++
 	chrome.exe!MainDllLoader::Launch(HINSTANCE__ * instance, base::TimeTicks exe_entry_point_ticks) Line 204	C++
 	chrome.exe!wWinMain(HINSTANCE__ * instance, HINSTANCE__ * prev, wchar_t * __formal, int __formal) Line 272	C++

I'm still seeing this on OSX 10.12.4, with Canary Version 59.0.3061.0 (up-to-date as of posting this). So far as I can tell, harmony is enabled (the button on that page says 'Disable', so I assume that means it is active). I reproduced with the sample HTML attached in comment #3
It seems there is an attempt to fix it: https://bugs.chromium.org/p/v8/issues/detail?id=6190#c5
Mergedinto: v8:6190
Status: Duplicate (was: Unconfirmed)

Comment 12 by rtoy@chromium.org, Apr 4 2017

 Issue 708067  has been merged into this issue.

Sign in to add a comment