| Index: src/ia32/full-codegen-ia32.cc
|
| diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
|
| index 23b8c66eeaabbfbe28c2a4fd40ce4ca44478e5f4..c554248cf4b45e9636178eae9e60c5ed265721d7 100644
|
| --- a/src/ia32/full-codegen-ia32.cc
|
| +++ b/src/ia32/full-codegen-ia32.cc
|
| @@ -1575,7 +1575,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| ASSERT(!CompileTimeValue::IsCompileTimeValue(value));
|
| // Fall through.
|
| case ObjectLiteral::Property::COMPUTED:
|
| - if (key->handle()->IsSymbol()) {
|
| + if (key->handle()->IsInternalizedString()) {
|
| if (property->emit_store()) {
|
| VisitForAccumulatorValue(value);
|
| __ mov(ecx, Immediate(key->handle()));
|
| @@ -2623,7 +2623,7 @@ void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf(
|
| __ cmp(ecx, FACTORY->hash_table_map());
|
| __ j(equal, if_false);
|
|
|
| - // Look for valueOf symbol in the descriptor array, and indicate false if
|
| + // Look for valueOf string in the descriptor array, and indicate false if
|
| // found. Since we omit an enumeration index check, if it is added via a
|
| // transition that shares its descriptor array, this is a false positive.
|
| Label entry, loop, done;
|
| @@ -2645,11 +2645,11 @@ void FullCodeGenerator::EmitIsStringWrapperSafeForDefaultValueOf(
|
| // Calculate location of the first key name.
|
| __ add(ebx, Immediate(DescriptorArray::kFirstOffset));
|
| // Loop through all the keys in the descriptor array. If one of these is the
|
| - // symbol valueOf the result is false.
|
| + // internalized string "valueOf" the result is false.
|
| __ jmp(&entry);
|
| __ bind(&loop);
|
| __ mov(edx, FieldOperand(ebx, 0));
|
| - __ cmp(edx, FACTORY->value_of_symbol());
|
| + __ cmp(edx, FACTORY->value_of_string());
|
| __ j(equal, if_false);
|
| __ add(ebx, Immediate(DescriptorArray::kDescriptorSize * kPointerSize));
|
| __ bind(&entry);
|
| @@ -2886,12 +2886,12 @@ void FullCodeGenerator::EmitClassOf(CallRuntime* expr) {
|
|
|
| // Functions have class 'Function'.
|
| __ bind(&function);
|
| - __ mov(eax, isolate()->factory()->function_class_symbol());
|
| + __ mov(eax, isolate()->factory()->function_class_string());
|
| __ jmp(&done);
|
|
|
| // Objects with a non-function constructor have class 'Object'.
|
| __ bind(&non_function_constructor);
|
| - __ mov(eax, isolate()->factory()->Object_symbol());
|
| + __ mov(eax, isolate()->factory()->Object_string());
|
| __ jmp(&done);
|
|
|
| // Non-JS objects have class null.
|
| @@ -4219,12 +4219,12 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| }
|
| PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
|
|
|
| - if (check->Equals(isolate()->heap()->number_symbol())) {
|
| + if (check->Equals(isolate()->heap()->number_string())) {
|
| __ JumpIfSmi(eax, if_true);
|
| __ cmp(FieldOperand(eax, HeapObject::kMapOffset),
|
| isolate()->factory()->heap_number_map());
|
| Split(equal, if_true, if_false, fall_through);
|
| - } else if (check->Equals(isolate()->heap()->string_symbol())) {
|
| + } else if (check->Equals(isolate()->heap()->string_string())) {
|
| __ JumpIfSmi(eax, if_false);
|
| __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edx);
|
| __ j(above_equal, if_false);
|
| @@ -4232,16 +4232,16 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ test_b(FieldOperand(edx, Map::kBitFieldOffset),
|
| 1 << Map::kIsUndetectable);
|
| Split(zero, if_true, if_false, fall_through);
|
| - } else if (check->Equals(isolate()->heap()->boolean_symbol())) {
|
| + } else if (check->Equals(isolate()->heap()->boolean_string())) {
|
| __ cmp(eax, isolate()->factory()->true_value());
|
| __ j(equal, if_true);
|
| __ cmp(eax, isolate()->factory()->false_value());
|
| Split(equal, if_true, if_false, fall_through);
|
| } else if (FLAG_harmony_typeof &&
|
| - check->Equals(isolate()->heap()->null_symbol())) {
|
| + check->Equals(isolate()->heap()->null_string())) {
|
| __ cmp(eax, isolate()->factory()->null_value());
|
| Split(equal, if_true, if_false, fall_through);
|
| - } else if (check->Equals(isolate()->heap()->undefined_symbol())) {
|
| + } else if (check->Equals(isolate()->heap()->undefined_string())) {
|
| __ cmp(eax, isolate()->factory()->undefined_value());
|
| __ j(equal, if_true);
|
| __ JumpIfSmi(eax, if_false);
|
| @@ -4250,14 +4250,14 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ movzx_b(ecx, FieldOperand(edx, Map::kBitFieldOffset));
|
| __ test(ecx, Immediate(1 << Map::kIsUndetectable));
|
| Split(not_zero, if_true, if_false, fall_through);
|
| - } else if (check->Equals(isolate()->heap()->function_symbol())) {
|
| + } else if (check->Equals(isolate()->heap()->function_string())) {
|
| __ JumpIfSmi(eax, if_false);
|
| STATIC_ASSERT(NUM_OF_CALLABLE_SPEC_OBJECT_TYPES == 2);
|
| __ CmpObjectType(eax, JS_FUNCTION_TYPE, edx);
|
| __ j(equal, if_true);
|
| __ CmpInstanceType(edx, JS_FUNCTION_PROXY_TYPE);
|
| Split(equal, if_true, if_false, fall_through);
|
| - } else if (check->Equals(isolate()->heap()->object_symbol())) {
|
| + } else if (check->Equals(isolate()->heap()->object_string())) {
|
| __ JumpIfSmi(eax, if_false);
|
| if (!FLAG_harmony_typeof) {
|
| __ cmp(eax, isolate()->factory()->null_value());
|
|
|