[Webkit-unassigned] [Bug 129911] Better JSContext API for named evaluations (other than //# sourceURL)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 10 16:18:45 PDT 2014


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


Geoffrey Garen <ggaren at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #226162|review?, commit-queue?      |review+, commit-queue-
               Flag|                            |




--- Comment #3 from Geoffrey Garen <ggaren at apple.com>  2014-03-10 16:15:44 PST ---
(From update of attachment 226162)
View in context: https://bugs.webkit.org/attachment.cgi?id=226162&action=review

r=me, but I think you can do a bit better here.

> Source/JavaScriptCore/API/JSContext.h:87
> + at param sourceURL A URL for the script's source path and name. Used by debuggers and when reporting exceptions.

I think I would just say "source file" instead of "source path and name". I didn't immediately understand what you meant by "path and name".

I would also say "This parameter is informative only: it does not change the behavior of the script."

> Source/JavaScriptCore/API/JSContext.mm:113
>  - (JSValue *)evaluateScript:(NSString *)script
>  {
> -    JSValueRef exceptionValue = 0;
> +    JSValueRef exceptionValue = nullptr;
>      JSStringRef scriptJS = JSStringCreateWithCFString((CFStringRef)script);
> -    JSValueRef result = JSEvaluateScript(m_context, scriptJS, 0, 0, 0, &exceptionValue);
> +    JSValueRef result = JSEvaluateScript(m_context, scriptJS, nullptr, nullptr, 0, &exceptionValue);
> +    JSStringRelease(scriptJS);
> +
> +    if (exceptionValue)
> +        return [self valueFromNotifyException:exceptionValue];
> +
> +    return [JSValue valueWithJSValueRef:result inContext:self];
> +}
> +
> +- (JSValue *)evaluateScript:(NSString *)script withSourceURL:(NSURL *)sourceURL
> +{
> +    if (!sourceURL)
> +        return [self evaluateScript:script];
> +
> +    JSValueRef exceptionValue = nullptr;
> +    JSStringRef scriptJS = JSStringCreateWithCFString((CFStringRef)script);
> +    JSStringRef sourceURLJS = JSStringCreateWithCFString((CFStringRef)[sourceURL absoluteString]);
> +    JSValueRef result = JSEvaluateScript(m_context, scriptJS, nullptr, sourceURLJS, 0, &exceptionValue);
> +    JSStringRelease(sourceURLJS);
>      JSStringRelease(scriptJS);

I would have done this the other way around, and had -evaluateScript: call -evaluateScript:withURL: passing a null or empty URL. That way, there's only one copy of the string creation, script evaluation, and exception handling code.

-- 
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