<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} .ms-cui-menu {background-color:#ffffff;border:1px rgb(171, 171, 171) solid;font-family:'Segoe UI WPC','Segoe UI',Tahoma,'Microsoft Sans Serif',Verdana,sans-serif;font-size:10pt;color:rgb(51, 51, 51);} .ms-cui-menusection-title {display:none;} .ms-cui-ctl {vertical-align:text-top;text-decoration:none;color:rgb(51, 51, 51);} .ms-cui-ctl-on {background-color:rgb(230, 235, 239);opacity: 0.8;} .ms-cui-img-cont-float {display:inline-block;margin-top:2px} .ms-cui-smenu-inner {padding-top:0px;} .ms-owa-paste-option-icon {margin: 0px 6px 0px 6px;vertical-align:middle!important;padding-bottom: 2px;display:inline-block;} .ms-rtePasteFlyout-option:hover {background-color:rgb(230, 235, 239) !important;opacity:1 !important;} .ms-rtePasteFlyout-option {padding:8px 4px 8px 4px;outline:none;} .ms-cui-menusection {float:left; width:85px;height:24px;overflow:hidden}.wf {speak:none; font-weight:normal; font-variant:normal; text-transform:none; -webkit-font-smoothing:antialiased; vertical-align:middle; display:inline-block;}.wf-family-owa {font-family:'o365Icons'}@font-face {  font-family:'o365IconsIE8';  src:url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.ie8.eot?#iefix') format('embedded-opentype'),         url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.ie8.woff') format('woff'),         url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.ie8.ttf') format('truetype');  font-weight:normal;  font-style:normal;}@font-face {  font-family:'o365IconsMouse';  src:url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.mouse.eot?#iefix') format('embedded-opentype'),         url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.mouse.woff') format('woff'),         url('https://r4.res.outlook.com/owa/prem/16.0.277.6/resources/styles/office365icons.mouse.ttf') format('truetype');  font-weight:normal;  font-style:normal;}.wf-family-owa {font-family:'o365IconsMouse'}.ie8 .wf-family-owa {font-family:'o365IconsIE8'}.ie8 .wf-owa-play-large:before {content:'\e254';}.notIE8 .wf-owa-play-large:before {content:'\e054';}.ie8 .wf-owa-play-large {color:#FFFFFF/*$WFWhiteColor*/;}.notIE8 .wf-owa-play-large {border-color:#FFFFFF/*$WFWhiteColor*/; width:1.4em; height:1.4em; border-width:.1em; border-style:solid; border-radius:.8em; text-align:center; box-sizing:border-box; -moz-box-sizing:border-box; padding:0.1em; color:#FFFFFF/*$WFWhiteColor*/;}.ie8 .wf-size-play-large {width:40px; height:40px; font-size:30px}.notIE8 .wf-size-play-large {width:40px; height:40px; font-size:30px}.notIE8 .wf-owa-triangle-down-small:before {content:'\e052';}.ie8 .wf-owa-triangle-down-small:before { content:'\e052';}.ie8 .wf-owa-triangle-down-small {color:#666666/*$WFGreyColor*/;}.wf-size-x20 {font-size: 20px!important;}--></style>
</head>
<body dir="ltr">
<div id="OWAFontStyleDivID" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>This seems like a dev-tools problem, and/or an issue of how informative the promise rejection's `.message` should be. I don't see anything we should be doing at the language level.</p>
<p><br>
</p>
<div style="color: rgb(40, 40, 40);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> es-discuss <es-discuss-bounces@mozilla.org> on behalf of Guy Bedford <guybedford@gmail.com><br>
<b>Sent:</b> Tuesday, June 24, 2014 14:11<br>
<b>To:</b> es-discuss<br>
<b>Subject:</b> debugging modules</font>
<div> </div>
</div>
<div>
<div dir="ltr">If I load a module, where one of the dependencies of that module throws in its immediate execution, the module I loaded will return successfully, while the error will be thrown in the environment. There is no way to currently see the tree that
 caused that module to be loaded in the first place.
<div><br>
</div>
<div>My worry is that we get random errors in third party libraries, without knowing how they even ended up being loaded.</div>
<div><br>
</div>
<div>I understand at a theoretical level that because of circular references, there is no single path for any given module execution, so that this doesn't make any sense.</div>
<div><br>
At the same time, I loaded X, and got an error in Y, so I need some way to inspect the dependency relations between X and Y to know how it got loaded. If we consider this as all possible relations, things get very complex.</div>
<div><br>
</div>
<div>The thing is though, there is a single execution thread, which can throw back to the importing module. And I think that is more sensible, as that is the information that is useful to the user.</div>
<div><br>
</div>
<div>The question then is what to do with these "failed" modules. I would continue to store them in the module table as "failed", and anything that imports from them as also "failed", and not to return as a successful import but to rather invoke the import
 reject handler.</div>
<div><br>
</div>
<div>I think this is important to simplify debugging.</div>
<div><br>
</div>
<div>See related issue - <a href="https://bugs.ecmascript.org/show_bug.cgi?id=2993">https://bugs.ecmascript.org/show_bug.cgi?id=2993</a><br>
</div>
</div>
</div>
</div>
</div>
</body>
</html>