ES6 symbols: Allow symbols as property names
authorrossberg@chromium.org <rossberg@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 4 Mar 2013 15:00:57 +0000 (15:00 +0000)
committerrossberg@chromium.org <rossberg@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 4 Mar 2013 15:00:57 +0000 (15:00 +0000)
commit5c93b18eb2a33ca425f6cee64c6a3913127cbfbb
tree047f7f1f5adffa6d94a4d817286b531ec5e3c3a5
parent74a25d8e17894cbebe574134c51c8c1b5c90430a
ES6 symbols: Allow symbols as property names

Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

R=verwaest@chromium.org,mstarzinger@chromium.org
BUG=v8:2158

Review URL: https://codereview.chromium.org/12330012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
52 files changed:
src/arm/code-stubs-arm.cc
src/arm/code-stubs-arm.h
src/arm/ic-arm.cc
src/arm/macro-assembler-arm.cc
src/arm/macro-assembler-arm.h
src/arm/stub-cache-arm.cc
src/bootstrapper.cc
src/code-stubs.h
src/cpu-profiler.cc
src/cpu-profiler.h
src/factory.cc
src/factory.h
src/handles.cc
src/heap-snapshot-generator.cc
src/heap-snapshot-generator.h
src/heap.cc
src/heap.h
src/ia32/code-stubs-ia32.cc
src/ia32/code-stubs-ia32.h
src/ia32/ic-ia32.cc
src/ia32/macro-assembler-ia32.cc
src/ia32/macro-assembler-ia32.h
src/ia32/stub-cache-ia32.cc
src/json-stringifier.h
src/log.cc
src/log.h
src/objects-debug.cc
src/objects-inl.h
src/objects-printer.cc
src/objects.cc
src/objects.h
src/profile-generator-inl.h
src/profile-generator.cc
src/profile-generator.h
src/property.h
src/proxy.js
src/runtime.cc
src/runtime.js
src/stub-cache.cc
src/stub-cache.h
src/transitions-inl.h
src/transitions.cc
src/transitions.h
src/v8globals.h
src/v8natives.js
src/x64/code-stubs-x64.cc
src/x64/code-stubs-x64.h
src/x64/ic-x64.cc
src/x64/macro-assembler-x64.cc
src/x64/macro-assembler-x64.h
src/x64/stub-cache-x64.cc
test/mjsunit/harmony/symbols.js