Bug 28236

Summary: Eval doesn't respect JavaScript's const keyword
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: aroben, barraclough, kmccullough, oliver, timothy
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   

Description Joseph Pecoraro 2009-08-12 15:47:31 PDT
It seems a const variable declared in the Console is just a "var" and can change value.

    > zzz // ensure it doesn't exist
    ReferenceError: Can't find variable: zzz
    
    > const zzz = 10;
    undefined
    
    > zzz = 5; // should do nothing
    5
    
    > zzz
    5

I would have expected the result to have been 10, since the constant shouldn't change.
Comment 1 Joseph Pecoraro 2009-08-12 15:54:30 PDT
Maybe this is actually a problem with eval():

Expected Behavior without eval:

    javascript:const zza = 10; zza = 5; alert(zza) => 10

Bad Behavior with eval:

    javascript:alert(eval("const zzb = 10; zzb = 5; zzb")) => 5

How should this bug be reclassified?
Comment 2 Timothy Hatcher 2009-08-12 17:18:14 PDT
Oliver, thoughts?
Comment 3 Oliver Hunt 2009-08-12 17:20:49 PDT
Yeah this is a known bug with eval
Comment 4 Gavin Barraclough 2012-03-07 00:32:49 PST
We should resolved this by implementing ES Harmony block scoped const.

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