- From: James Graham <jgraham@opera.com>
- Date: Thu, 7 Apr 2011 22:55:57 +0200 (CEST)
- To: Garrett Smith <dhtmlkitchen@gmail.com>
- cc: James Graham <jgraham@opera.com>, Aryeh Gregor <Simetrical+w3c@gmail.com>, public-test-infra <public-test-infra@w3.org>
On Thu, 7 Apr 2011, Garrett Smith wrote: > On 4/7/11, James Graham <jgraham@opera.com> wrote: >> In general one needs all sorts of typechecking to *not* write methods >> that will accept any of string, number, etc. > > Missing the point. The test harness function expects (it is designed > to take) any of number, string, host object, etc. Too general. There > is a difference between that and designing a method that expects a > string, > > e.g. function padString(s, indent) { s = String(s); } This example doesn't seem to have any relevance to the testharness. I would appreciate it if you could use real examples of code you would like to change in the test harness. As it is, I am having trouble meshing your views with the actual code which, as far as I can tell, is generally quite strict about types whilst not bloating the API too much and still feeling like javascript. > No, but more recent browsers do not agree on such things as > callability of HTMLFormControlsCollection, and, if callable, what the > result of typeof should be (ECMA says it must be "function"). The only place I can see that the test harness relies on this is in the templating code. That code is admittedly quite fragile. It is exposed a little but I doubt anything that I didn't write is using it so it seems quite possible to make it internal-only again. Therefore it should be safe to make changes there. > There is use of hasOwnroperty on a host object. The problem with that > is there may be some sort of special [[Get]] for that object so even > Object.prototype is in that object's prototype it will fail. I don't think special [[Get]] is relevant here. Any object could shadow hasOwnProperty somehow. Of course it seems insane to design an API in javascript that does this, and it doesn't seem like you should ever *have* to do this for testing. However it could be fixed by changing all the o.hasOwnProperty(prop) to Object.prototype.hasOwnProperty.call(o, prop). That is bad for readability though, so I would like an example of something that will break if I don't make the change. > anyone making assertions such as `assert(NaN, myvar)`, which the > harness accounts for, is making unreasonable expectations. The test > harness handles that misexpectation with: I fail to understand what is unreasonable about that. In general, I would prefer feedback in the form of specific comments about the testharness code or, better yet, example patches. I think it is much easier to reason about real examples than hypotheticals.
Received on Thursday, 7 April 2011 20:56:31 UTC