• rossberg@chromium.org's avatar
    ES6 symbols: Implement Symbol intrinsic and basic functionality · 090d09d6
    rossberg@chromium.org authored
    - Add --harmony-symbols flag.
    - Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
    - Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
    - Extend 'typeof' code generation to handle symbols.
    - Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
    - Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
    - Extend Object.prototype.toString to recognise symbols.
    
    Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).
    
    (Baseline CL: https://codereview.chromium.org/12223071/)
    
    R=mstarzinger@chromium.org
    BUG=v8:2158
    
    Review URL: https://codereview.chromium.org/12296026
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    090d09d6
Name
Last commit
Last update
..
gcmole Loading commit data...
gyp Loading commit data...
oom_dump Loading commit data...
testrunner Loading commit data...
v8.xcodeproj Loading commit data...
visual_studio Loading commit data...
android-build.sh Loading commit data...
android-ll-prof.sh Loading commit data...
android-run.py Loading commit data...
android-sync.sh Loading commit data...
bash-completion.sh Loading commit data...
check-static-initializers.sh Loading commit data...
codemap.js Loading commit data...
common-includes.sh Loading commit data...
consarray.js Loading commit data...
csvparser.js Loading commit data...
disasm.py Loading commit data...
freebsd-tick-processor Loading commit data...
fuzz-harness.sh Loading commit data...
gc-nvp-trace-processor.py Loading commit data...
gdb-v8-support.py Loading commit data...
gen-postmortem-metadata.py Loading commit data...
generate-ten-powers.scm Loading commit data...
grokdump.py Loading commit data...
js2c.py Loading commit data...
jsmin.py Loading commit data...
linux-tick-processor Loading commit data...
ll_prof.py Loading commit data...
logreader.js Loading commit data...
mac-nm Loading commit data...
mac-tick-processor Loading commit data...
merge-to-branch.sh Loading commit data...
plot-timer-events Loading commit data...
plot-timer-events.js Loading commit data...
presubmit.py Loading commit data...
process-heap-prof.py Loading commit data...
profile.js Loading commit data...
profile_view.js Loading commit data...
push-to-trunk.sh Loading commit data...
run-llprof.sh Loading commit data...
run-tests.py Loading commit data...
run-valgrind.py Loading commit data...
splaytree.js Loading commit data...
stats-viewer.py Loading commit data...
status-file-converter.py Loading commit data...
test-server.py Loading commit data...
test-wrapper-gypbuild.py Loading commit data...
test.py Loading commit data...
tick-processor.html Loading commit data...
tickprocessor-driver.js Loading commit data...
tickprocessor.js Loading commit data...
utils.py Loading commit data...
windows-tick-processor.bat Loading commit data...