[SERVER-8292] Make JavaScript error reporting more closely match version 2.2 Created: 23/Jan/13  Updated: 11/Jul/16  Resolved: 25/Jan/13

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: 2.3.2
Fix Version/s: 2.4.0-rc0

Type: Bug Priority: Major - P3
Reporter: Tad Marshall Assignee: Tad Marshall
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-8926 Shell displays "JavaScript execution ... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

We have a new set of validity checks in our JavaScript interface code due to the switch from SpiderMonkey to V8, and a different routine for displaying JavaScript exceptions. The output should be made to match version 2.2 more closely than it currently does.

The display of the JavaScript code that threw an exception, along with a caret indicating where in the line the exception occurred, is not felt to be helpful.

SpiderMonkey:

> throw "There was a problem"
Wed Jan 23 06:40:49.109 uncaught exception: There was a problem
>

V8:

> throw "There was a problem"
Wed Jan 23 06:41:11.570 javascript execution failed (shell):1 There was a problem
throw "There was a problem"
^
 
>



 Comments   
Comment by auto [ 26/Jan/13 ]

Author:

{u'date': u'2013-01-26T15:25:34Z', u'email': u'tad@10gen.com', u'name': u'Tad Marshall'}

Message: SERVER-8292 SERVER-7843 SERVER-7087 Make tojsonObject handle Error objects

Use the toString() method of Error (and derived) objects to convert them
to strings in tojson() and related functions. These objects have no
enumerable properties, and so display as "{ }" if not handled specially.
Branch: master
https://github.com/mongodb/mongo/commit/7d538d4eae30fd945fc6d4e7cef27ca0da08cf60

Comment by auto [ 25/Jan/13 ]

Author:

{u'date': u'2013-01-25T21:41:49Z', u'email': u'tad@10gen.com', u'name': u'Tad Marshall'}

Message: SERVER-8292 SERVER-7843 SERVER-7087 Better V8 exceptions

Audit all handling of C++ and JavaScript exceptions in V8 interface code.
Pass C++ exception details back to JavaScript similarly to the way this
is done in the SpiderMonkey interface code. Format JavaScript exception
reporting output to be more similar to the output generated in SpiderMonkey.
Add code and macros to make argument testing and throwing of JavaScript
exceptions more uniform. Fix typos in error reporting where the error
names the wrong function. Mimic error text from SpiderMonkey more closely.
Branch: master
https://github.com/mongodb/mongo/commit/41de9044a87c167de4ec2ba5e67f8f735d9f98c9

Generated at Thu Feb 08 03:17:02 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.