From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2001:558:fe21:29:69:252:207:35; helo=resqmta-ch2-03v.sys.comcast.net; envelope-from=eklhad@comcast.net; receiver= Received: from resqmta-ch2-03v.sys.comcast.net (resqmta-ch2-03v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:35]) by hurricane.the-brannons.com (Postfix) with ESMTPS id 32BF777A9A for ; Fri, 16 Mar 2018 08:24:16 -0700 (PDT) Received: from resomta-ch2-19v.sys.comcast.net ([69.252.207.115]) by resqmta-ch2-03v.sys.comcast.net with ESMTP id wrEXeKwUryNABwrF3eX85n; Fri, 16 Mar 2018 15:26:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20161114; t=1521213961; bh=arm7mNrbtpAHXyyZxkfpIiReqM83sP7aABzryJP33L4=; h=Received:Received:To:From:Reply-to:Subject:Date:Message-ID: Mime-Version:Content-Type; b=HZfz3st7W9e8FMdIzF5rlt0UdrunNOB2zrhW7uQWXlwj6S0vnkNmZ5BA5a0KD/R68 3bOs/bm0eggUZ0tUabNXI7WtGST9ZD3yDQM7J87++9URM1431QGktMMzVWpcsHYPhL LAnCtKzVfvoL4pSE8hxV+s2wWz4IhKwpY3WU/kaWdQB1TAlgceYhT1LkiTXeMe949J 4e/s67/L9tEx59lrnvXDngZ6BVmXhtonHXhD3FktuBtkof282hlj6GCURYM6IriwUt 2elAoB6vAMCnCMuCHbRYguwn1uiWv8PgZUSGSo/zIKGCq8VIMBAkmuGM7On7uILDcX 0+E3Pf3AY2KfA== Received: from unknown ([IPv6:2601:408:c300:8f09:21e:4fff:fec2:a0f1]) by resomta-ch2-19v.sys.comcast.net with SMTP id wrF2eedXNrKtjwrF2e9WEQ; Fri, 16 Mar 2018 15:26:00 +0000 To: Edbrowse-dev@lists.the-brannons.com From: Karl Dahlke Reply-to: Karl Dahlke User-Agent: edbrowse/3.7.2 Date: Fri, 16 Mar 2018 11:26:00 -0400 Message-ID: <20180216112600.eklhad@comcast.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=nextpart-eb-609793 Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfKRnVNtyTVxRSf0VkCG7+ro2hjzvRJobjB/c1qsJQrrv7CItZg9NicfcGXJ/flbu8mqH2Q/sgzSvnbGqxvmE5f1tJ8M8p/aSj6/9QWJBnCRsMPm2QqT7 nyquHPlu7NN0xVAGXYwOPkkvWDQpY7zT6g2oKTLBYSlPeGZaXnImPgAt Subject: [Edbrowse-dev] NASA is so weird we may never understand it X-BeenThere: edbrowse-dev@lists.the-brannons.com X-Mailman-Version: 2.1.25 Precedence: list List-Id: Edbrowse Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2018 15:24:17 -0000 This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --nextpart-eb-609793 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable First, a new feature, which for laziness is overloaded on an old = feature. uvw trace At db3 or higher, this injects codes into the output stream as to where = execution is happening. d254 (for illustration) The letter is the script running and the number is a meaningless = sequence number. If you look in the script vendor.js for nasa you'll find alert3('d254'); Such an alert is placed before each var, since those are the only = syntactically safe places to do so. I couldn't find any other place that is safe. So only about 9% of lines havve markers, but it's something. vendor.js in nasa is 43,000 lines of nightmare. I believe it equalizes all javascript environments for third party = companies or government agencies, and it puts a layer on top of javascript, like jquery, but of course = it's not jquery, because why use something that's standard and = established and has a pool of people who understand it when you can = come up with something new? Anyways, here are two of many weirdnesses. Out of the box, there is no sinh function hyperbolic sine. Math.sinh is undefined. After vendor.js runs Math.sinh exists and runs the correct = calculations. (I checked) Fine, a script can always paste a function onto Math that was not there = before. No mystery so far. But, in jdb, Math.sinh says the function is native code. vendor.js can't possibly add native code. I can even find the javascript that does the hyperbolic sine = calculation. It's not native, so what gives? I can only guess that vendor.js put it's own toString() function on = sinh, so it would blurt out the words "native code", because on some = browsers, it is native, and remember, we want all browsers to look the same. So I guess that's what they did, but even more than that. I think they did something like this. Math.sinh.toString =3D Math.sqrt.toString Borrow the toString from a function that is already there. Verified by Math.sqrt.toString =3D=3D Math.sinh.toString true The next weirdness is even weirder. >>From inside jdb, type "abc".match(/./) d254 a Yes, a piece of vendor.js runs when you ask whether a string matches a = regular expression. Somehow the String object method match has been overwritten. String.match =3D their stuff. Are you serious!! Same happens with "abc".split("b"), but not with "abc".substr(1). They chose to overwrite some of the String methods but not all. With all this in mind, we'd have to hire a fulltime engineer just to = understand the nasa website and/or vendor.js. Obviously we don't have the resources to do that. Karl Dahlke --nextpart-eb-609793--