Bug 117349 - ARM/JIT: associative array access by a var may return an undefined object
Summary: ARM/JIT: associative array access by a var may return an undefined object
Status: RESOLVED DUPLICATE of bug 116306
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-07 08:12 PDT by Stephane Cerveau
Modified: 2013-06-26 07:09 PDT (History)
2 users (show)

See Also:


Attachments
Test case. Jellyfish webgl (2.14 MB, application/x-compressed-tar)
2013-06-07 08:26 PDT, Stephane Cerveau
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stephane Cerveau 2013-06-07 08:12:24 PDT
A tab of object returns sometimes an undefined object when this tab is accessed by a var containing the identifying string. This bug occurs only when the assignation is done in function in the first line. This bug only occurs on ARM-V7 platform with JIT enabled.

Ex:

function setShader(name){
   currentProgram = shaderProgram[name];
}

In this case name is always the same string 'string'.

CurrentProgram will be sometimes undefined.

It does not fail when currentProgram= shaderProgram['string'] 

It does not fail if an instruction is done before like

var iterator;
function setShader(name){
   iterator++;
   currentProgram = shaderProgram[name];
}
Comment 1 Stephane Cerveau 2013-06-07 08:26:11 PDT
Created attachment 204045 [details]
Test case. Jellyfish webgl

Here is a test case.
This test case allows to reproduce the bug on ARM-V7 platform. On my platform the bug occurs after 68 iterations average.
An alert should pop up when the object in initShader.js/SetShader is undefined.
Unfortunatly i havent been able to clean up the code to reproduce the same kind of issue.
Comment 2 Stephane Cerveau 2013-06-10 07:14:56 PDT
The problem occurs only in release mode.
Comment 3 Stephane Cerveau 2013-06-26 07:09:49 PDT

*** This bug has been marked as a duplicate of bug 116306 ***