| Index: src/objects-inl.h
 | 
| ===================================================================
 | 
| --- src/objects-inl.h	(revision 3561)
 | 
| +++ src/objects-inl.h	(working copy)
 | 
| @@ -150,8 +150,12 @@
 | 
|  bool Object::IsSymbol() {
 | 
|    if (!this->IsHeapObject()) return false;
 | 
|    uint32_t type = HeapObject::cast(this)->map()->instance_type();
 | 
| -  return (type & (kIsNotStringMask | kIsSymbolMask)) ==
 | 
| -         (kStringTag | kSymbolTag);
 | 
| +  // Because the symbol tag is non-zero and no non-string types have the
 | 
| +  // symbol bit set we can test for symbols with a very simple test
 | 
| +  // operation.
 | 
| +  ASSERT(kSymbolTag != 0);
 | 
| +  ASSERT(kNotStringTag + kIsSymbolMask > LAST_TYPE);
 | 
| +  return (type & kIsSymbolMask != 0);
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -226,7 +230,8 @@
 | 
|  
 | 
|  bool StringShape::IsSymbol() {
 | 
|    ASSERT(valid());
 | 
| -  return (type_ & kIsSymbolMask) == kSymbolTag;
 | 
| +  ASSERT(kSymbolTag != 0);
 | 
| +  return (type_ & kIsSymbolMask) != 0;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |