<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">Le 25 août 2016 à 17:17, Claude Pache <<a href="mailto:claude.pache@gmail.com" class="">claude.pache@gmail.com</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Le 25 août 2016 à 16:05, Alexander Mekhonoshin <<a href="mailto:invntrm@yandex-team.ru" class="">invntrm@yandex-team.ru</a>> a écrit :</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px;" class=""><br class=""></p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px;" class="">2. unary ?.</p><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px;" class="">window?.navigator?.toString()</p><ul style="box-sizing: border-box; padding-left: 2em; margin-top: 0px; color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 14px; margin-bottom: 0px !important;" class=""><li style="box-sizing: border-box; margin-left: 0px;" class="">browser: "[object Navigator]"</li><li style="box-sizing: border-box; margin-top: 0.25em; margin-left: 0px;" class="">node: ReferenceError: window is not defined</li></ul><div class=""><br class=""></div><div class="">here i suggest syntax for exception-slient accesing globals:</div><div class=""><br class=""></div><div class="">?.a === hostGlobalObject?.a</div><div class="">?.a?.b === hostGlobalObject?.a?.b</div></div></div></blockquote><div class=""><br class=""></div>For accessing the global object, I think that the current System.global proposal is a better call, because it adds no syntax. See:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/tc39/proposal-global" class="">https://github.com/tc39/proposal-global</a></div><div class=""><br class=""></div><div class="">`System.global?.navigator.toString()` is somewhat lengthy, but it is nevertheless simple and clear.</div><div class=""><br class=""></div></div></div></blockquote><div><br class=""></div><div>Correction: `System.global.navigator?.toString()`</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">—Claude</div></div></div></blockquote><br class=""></div><div><br class=""></div></body></html>