Path: csiph.com!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.lang.javascript Subject: Re: Bug in javascript found Date: Wed, 10 Feb 2021 11:20:07 +0000 Organization: A noiseless patient Spider Lines: 59 Message-ID: <87r1logoew.fsf@bsb.me.uk> References: <7ad3dfb3-90b3-4fce-b537-55511a64cea8n@googlegroups.com> <6c7176b7-13fe-4381-8083-ccc58fc4fcb6n@googlegroups.com> <878s7wis65.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: reader02.eternal-september.org; posting-host="1cf95790cca243eb5e1e6b17078f9ce0"; logging-data="29100"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/2Qq2A6QgO4a3vPJJ0VY0OXzaEl2mbFI8=" Cancel-Lock: sha1:x8EClXsChl5L5n5g23FaVesaxe8= sha1:T7HCBstS3Y9VaxTISWxtgyrPoWk= X-BSB-Auth: 1.1eb71c7d7765c5d267c5.20210210112007GMT.87r1logoew.fsf@bsb.me.uk Xref: csiph.com comp.lang.javascript:39450 Jonas Thörnvall writes: > onsdag 10 februari 2021 kl. 03:16:10 UTC+1 skrev Ben Bacarisse: >> Jonas Thörnvall writes: >> >> > tisdag 9 februari 2021 kl. 22:03:22 UTC+1 skrev Jonas Thörnvall: >> >> tisdag 9 februari 2021 kl. 21:42:46 UTC+1 skrev Jonas Thörnvall: >> >> > The input alert have not same value as the calcSTR alert. >> >> > And that is also why it not goes into the if clause. >> >> > >> >> > The "Input"+calcSTR is +7 >> >> > but the "calcSTR"+calcSTR is +14-7 >> >> > >> >> > A string can't just change value so there must be a bug in at least Chrome implementation of javascript. >> >> > >> >> > function evalSecondary(calcSTR){ >> >> > alert("Input"+calcSTR); >> >> > for(m=0;m> >> > tempChar=calcSTR.charCodeAt(m); >> >> > //Plus or Minus >> >> > if((tempChar==43|| tempChar==45) && m!=0){ >> >> > alert("tempChar "+tempChar+ " M="+m+" calcSTR"+calcSTR); >> >> > operand=calcSTR.charAt(m); >> >> > getSecondaryOps(calcSTR); >> >> > calcSubSecondary(calcSTR); >> >> > } >> >> > } >> >> > } >> >> Well you see the code creating the alerts. >> >> https://jonasth.github.io/Mathparse/INDEX.HTML >> >> It is an impossibility frankly. >> > I simply could not understand why the recursion never ended, but then >> > again if a variable can change value "within same function" while not >> > assigned between two alerts then something definitely broken. >> It is not going to turn out to be Chrome that's broken. Your code is a >> mess, but the biggest problem is that you are still using global >> variables. These are always a bad idea, but they are particularly bad >> in recursive code. >> > So you say it is correct for a variable to change value within a > function without having an assignment between the changing points, i > kind of doubt that. Global variables can be assigned from anywhere. The chances are your code is changing the variable but you don't know where that is happening. > But i agree there is some sorcery going into recursive coding, global > values that are in a function no longer present after recursion ended, > my head quite spinning of it. That feeling is common (every student I've ever taught programming to has at some point thought that magic was involved) but it does not help. Your code is not doing what you think it is doing and the more you focus on other factors like supposed bugs in Chrome or sorcery the longer it will take you to understand what you code /is/ really doing. -- Ben.