Ignore:
Timestamp:
Mar 24, 2008, 8:39:56 PM (17 years ago)
Author:
Darin Adler
Message:

2008-03-24 Darin Adler <Darin Adler>

Reviewed by Sam.

  • convert a JavaScript immediate number to a string more efficiently

2% speedup of Acid3 test 26

  • kjs/JSImmediate.cpp: (KJS::JSImmediate::toString): Take advantage of the fact that all immediate numbers are integers, and use the faster UString function for formatting integers instead of the slower one that works for floating point. I think this is a leftover from when immediate numbers were floating point.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/JSImmediate.cpp

    r28476 r31270  
    11/*
    2  *  This file is part of the KDE libraries
    3  *  Copyright (C) 2003-2006 Apple Computer, Inc
     2 *  Copyright (C) 2003-2006, 2008 Apple Inc. All rights reserved.
    43 *
    54 *  This library is free software; you can redistribute it and/or
     
    4948}
    5049
    51 UString JSImmediate::toString(const JSValue *v)
     50UString JSImmediate::toString(const JSValue* v)
    5251{
    5352    ASSERT(isImmediate(v));
    54    
    5553    if (v == jsNull())
    5654        return "null";
    57     else if (v == jsUndefined())
     55    if (v == jsUndefined())
    5856        return "undefined";
    59     else if (v == jsBoolean(true))
     57    if (v == jsBoolean(true))
    6058        return "true";
    61     else if (v == jsBoolean(false))
     59    if (v == jsBoolean(false))
    6260        return "false";
    63     else {
    64         ASSERT(isNumber(v));
    65         double d = toDouble(v);
    66         if (d == 0.0) // +0.0 or -0.0
    67             return "0";
    68         return UString::from(d);
    69     }
     61    ASSERT(isNumber(v));
     62    return UString::from(getTruncatedInt32(v));
    7063}
    7164
Note: See TracChangeset for help on using the changeset viewer.