[Webkit-unassigned] [Bug 98814] New: IndexedDB: Key paths should support non-ASCII identifiers

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Oct 9 12:16:59 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=98814

           Summary: IndexedDB: Key paths should support non-ASCII
                    identifiers
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebCore Misc.
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: jsbell at chromium.org
                CC: dgrogan at chromium.org, alecflett at chromium.org


IDB spec http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-key-path says:

A key path is a DOMString or Array that defines how to extract a key from a value. A valid key path is one of:
* An empty DOMString.
* A DOMString containing a JavaScript identifier [ECMA-262].
* A DOMString containing multiple Javascript identifiers separated by periods (ASCII character code 46) [ECMA-262].
* A non-empty Array containing only DOMStrings conforming to the above requirements.

And ECMA-262 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf#page=29 sayeth:

"Identifier Names are tokens that are interpreted according to the grammar given in the ―Identifiers‖ section of 
chapter 5 of the Unicode standard, with some small modifications. An Identifier is an IdentifierName that is not 
a  ReservedWord (see 7.6.1). The Unicode identifier grammar is based on both normative and informative 
character categories specified by the Unicode Standard. The characters in the specified categories in version 
3.0 of the Unicode standard must be treated as in those categories by all conforming ECMAScript 
implementations.

"This standard specifies specific character additions: The dollar sign ($) and the underscore (_) are permitted 
anywhere in an IdentifierName."

And this is followed by a grammar.

However, the WebKit IDB implementation uses:

static inline bool isSafeIdentifierStartCharacter(UChar c)
{
    return isASCIIAlpha(c) || (c == '_') || (c == '$');
}

static inline bool isSafeIdentifierCharacter(UChar c)
{
    return isASCIIAlphanumeric(c) || (c == '_') || (c == '$');
}

... so we fail http://w3c-test.org/webapps/IndexedDB/tests/submissions/Opera/keypath.htm

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list