[webkit-changes] [220329] trunk

2017-08-06 Thread carlosgc
Title: [220329] trunk








Revision 220329
Author carlo...@webkit.org
Date 2017-08-06 23:06:34 -0700 (Sun, 06 Aug 2017)


Log Message
[GTK][WPE] Add API to provide browser information required by automation
https://bugs.webkit.org/show_bug.cgi?id=175130

Source/_javascript_Core:

Reviewed by Brian Burg.

Add browserName and browserVersion to RemoteInspector::Client::Capabilities and virtual methods to the Client to
get them.

* inspector/remote/RemoteInspector.cpp:
(Inspector::RemoteInspector::updateClientCapabilities): Update also browserName and browserVersion.
* inspector/remote/RemoteInspector.h:
* inspector/remote/glib/RemoteInspectorGlib.cpp:
(Inspector::RemoteInspector::requestAutomationSession): Call updateClientCapabilities() after the session is
requested to ensure they are updated before StartAutomationSession reply is sent.
* inspector/remote/glib/RemoteInspectorServer.cpp: Add browserName and browserVersion as return values of
StartAutomationSession mesasage.

Source/WebDriver:

Reviewed by Brian Burg.

* Session.cpp:
(WebDriver::Session::createTopLevelBrowsingContext): Check if startAutomationSession and complete the command
with error in that case.
* SessionHost.h:
* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::matchCapabilities): Match the capabilities that are known only after the browser has
been launched.
(WebDriver::SessionHost::startAutomationSession): Handle the StartAutomationSession response, extracting the
capabilities and calling matchCapabilities() to match them.
(WebDriver::SessionHost::setTargetList): Return early if the session was rejected before due to invalid
capabilities.

Source/WebKit:

Reviewed by Michael Catanzaro.

When a new automation session is started, the web driver receives some required capabilities from the client,
like browser name and version. The session should be rejected if those required capabilities don't match with
the actual browser that is launched. We don't know that information in WebKit, so we need to add API so that
users can provide it when a new session request is made. This patch adds boxed object WebKitApplicationInfo that
can be used to set the application name and version. This object can be set to a WebKitAutomationSession when
WebKitWebContext::automation-started signal is emitted.

* PlatformGTK.cmake:
* PlatformWPE.cmake:
* UIProcess/API/glib/WebKitApplicationInfo.cpp: Added.
(webkit_application_info_new):
(webkit_application_info_ref):
(webkit_application_info_unref):
(webkit_application_info_set_name):
(webkit_application_info_get_name):
(webkit_application_info_set_version):
(webkit_application_info_get_version):
* UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionDispose):
(webkit_automation_session_class_init):
(webkitAutomationSessionGetBrowserName):
(webkitAutomationSessionGetBrowserVersion):
(webkit_automation_session_set_application_info):
(webkit_automation_session_get_application_info):
* UIProcess/API/glib/WebKitAutomationSessionPrivate.h:
* UIProcess/API/glib/WebKitWebContext.cpp:
* UIProcess/API/gtk/WebKitApplicationInfo.h: Added.
* UIProcess/API/gtk/WebKitAutomationSession.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
* UIProcess/API/gtk/webkit2.h:
* UIProcess/API/wpe/WebKitApplicationInfo.h: Added.
* UIProcess/API/wpe/WebKitAutomationSession.h:
* UIProcess/API/wpe/webkit.h:

Tools:

Reviewed by Michael Catanzaro.

* MiniBrowser/gtk/main.c:
(automationStartedCallback): Set browser information when a new automation session is started.
* TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
(testAutomationSessionApplicationInfo):
(beforeAll):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.cpp
trunk/Source/_javascript_Core/inspector/remote/RemoteInspector.h
trunk/Source/_javascript_Core/inspector/remote/glib/RemoteInspectorGlib.cpp
trunk/Source/_javascript_Core/inspector/remote/glib/RemoteInspectorServer.cpp
trunk/Source/WebDriver/ChangeLog
trunk/Source/WebDriver/Session.cpp
trunk/Source/WebDriver/SessionHost.h
trunk/Source/WebDriver/glib/SessionHostGlib.cpp
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/PlatformGTK.cmake
trunk/Source/WebKit/PlatformWPE.cmake
trunk/Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp
trunk/Source/WebKit/UIProcess/API/glib/WebKitAutomationSessionPrivate.h
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
trunk/Source/WebKit/UIProcess/API/gtk/WebKitAutomationSession.h
trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt
trunk/Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
trunk/Source/WebKit/UIProcess/API/gtk/webkit2.h
trunk/Source/WebKit/UIProcess/API/wpe/WebKitAutomationSession.h
trunk/Source/WebKit/UIProcess/API/wpe/webkit.h
trunk/Tools/ChangeLog
trunk/Tools/MiniBrowser/gtk/main.c
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp


Added Paths

trunk/Source/We

[webkit-changes] [220328] trunk/Tools

2017-08-06 Thread ryanhaddad
Title: [220328] trunk/Tools








Revision 220328
Author ryanhad...@apple.com
Date 2017-08-06 20:24:50 -0700 (Sun, 06 Aug 2017)


Log Message
Unreviewed, rolling out r220295.

This change introduced 4 errors in webkitpy tests.

Reverted changeset:

"[XCode] webkit-patch should run sort-Xcode-project-file"
https://bugs.webkit.org/show_bug.cgi?id=174036
http://trac.webkit.org/changeset/220295

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/ports.py
trunk/Tools/Scripts/webkitpy/tool/commands/download.py
trunk/Tools/Scripts/webkitpy/tool/commands/upload.py
trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py
trunk/Tools/Scripts/webkitpy/tool/steps/options.py


Removed Paths

trunk/Tools/Scripts/webkitpy/tool/steps/sortxcodeprojectfiles.py




Diff

Modified: trunk/Tools/ChangeLog (220327 => 220328)

--- trunk/Tools/ChangeLog	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/ChangeLog	2017-08-07 03:24:50 UTC (rev 220328)
@@ -1,3 +1,15 @@
+2017-08-06  Ryan Haddad  
+
+Unreviewed, rolling out r220295.
+
+This change introduced 4 errors in webkitpy tests.
+
+Reverted changeset:
+
+"[XCode] webkit-patch should run sort-Xcode-project-file"
+https://bugs.webkit.org/show_bug.cgi?id=174036
+http://trac.webkit.org/changeset/220295
+
 2017-08-04  Ryan Haddad  
 
 Disable API test NowPlayingControlsTests.NowPlayingControlsIOS.


Modified: trunk/Tools/Scripts/webkitpy/common/config/ports.py (220327 => 220328)

--- trunk/Tools/Scripts/webkitpy/common/config/ports.py	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/Scripts/webkitpy/common/config/ports.py	2017-08-07 03:24:50 UTC (rev 220328)
@@ -134,10 +134,7 @@
 command = self.script_shell_command("run-api-tests")
 return self._append_build_style_flag(command, build_style)
 
-def run_sort_xcode_project_file_command(self):
-return self.script_shell_command("sort-Xcode-project-file")
 
-
 class IOSPort(DeprecatedPort):
 port_flag_name = "ios-device"
 


Modified: trunk/Tools/Scripts/webkitpy/tool/commands/download.py (220327 => 220328)

--- trunk/Tools/Scripts/webkitpy/tool/commands/download.py	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/download.py	2017-08-07 03:24:50 UTC (rev 220328)
@@ -127,7 +127,6 @@
 name = "land-cowhand"
 help_text = "Prepares a ChangeLog and lands the current working directory diff."
 steps = [
-steps.SortXcodeProjectFiles,
 steps.PrepareChangeLog,
 steps.EditChangeLog,
 steps.CheckStyle,


Modified: trunk/Tools/Scripts/webkitpy/tool/commands/upload.py (220327 => 220328)

--- trunk/Tools/Scripts/webkitpy/tool/commands/upload.py	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/upload.py	2017-08-07 03:24:50 UTC (rev 220328)
@@ -257,7 +257,6 @@
 steps = [
 steps.PromptForBugOrTitle,
 steps.CreateBug,
-steps.SortXcodeProjectFiles,
 steps.PrepareChangeLog,
 ]
 
@@ -276,7 +275,6 @@
 steps.CheckStyle,
 steps.PromptForBugOrTitle,
 steps.CreateBug,
-steps.SortXcodeProjectFiles,
 steps.PrepareChangeLog,
 steps.EditChangeLog,
 steps.ConfirmDiff,


Modified: trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py (220327 => 220328)

--- trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/Scripts/webkitpy/tool/steps/__init__.py	2017-08-07 03:24:50 UTC (rev 220328)
@@ -59,7 +59,6 @@
 from webkitpy.tool.steps.reopenbugafterrollout import ReopenBugAfterRollout
 from webkitpy.tool.steps.revertrevision import RevertRevision
 from webkitpy.tool.steps.runtests import RunTests
-from webkitpy.tool.steps.sortxcodeprojectfiles import SortXcodeProjectFiles
 from webkitpy.tool.steps.suggestreviewers import SuggestReviewers
 from webkitpy.tool.steps.update import Update
 from webkitpy.tool.steps.updatechangelogswithreviewer import UpdateChangeLogsWithReviewer


Modified: trunk/Tools/Scripts/webkitpy/tool/steps/options.py (220327 => 220328)

--- trunk/Tools/Scripts/webkitpy/tool/steps/options.py	2017-08-07 03:00:55 UTC (rev 220327)
+++ trunk/Tools/Scripts/webkitpy/tool/steps/options.py	2017-08-07 03:24:50 UTC (rev 220328)
@@ -57,7 +57,6 @@
 request_commit = make_option("--request-commit", action="" dest="request_commit", default=False, help="Request that the patch be added to the commit queue after review.")
 review = make_option("--no-review", action="" dest="review", default=True, help="Do not mark the patch for review.")
 reviewer = make_option("-r", "--reviewer", action="" type="string", dest="reviewer", help="Update ChangeLogs to say Reviewed by REVIEWER.")
-sort_xcode_project = make_option("--no-sort-xcode-project", action="" dest="sort_xcode_project", default=True, help="Don't sort modified xcode projects.")
 suggest_reviewers = make_option("--suggest-reviewers", act

[webkit-changes] [220327] trunk/Tools

2017-08-06 Thread ryanhaddad
Title: [220327] trunk/Tools








Revision 220327
Author ryanhad...@apple.com
Date 2017-08-06 20:00:55 -0700 (Sun, 06 Aug 2017)


Log Message
Disable API test NowPlayingControlsTests.NowPlayingControlsIOS.

Unreviewed test gardening.

* TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm




Diff

Modified: trunk/Tools/ChangeLog (220326 => 220327)

--- trunk/Tools/ChangeLog	2017-08-06 23:34:58 UTC (rev 220326)
+++ trunk/Tools/ChangeLog	2017-08-07 03:00:55 UTC (rev 220327)
@@ -1,3 +1,12 @@
+2017-08-04  Ryan Haddad  
+
+Disable API test NowPlayingControlsTests.NowPlayingControlsIOS.
+
+Unreviewed test gardening.
+
+* TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm:
+(TestWebKitAPI::TEST):
+
 2017-08-05  Filip Pizlo  
 
 REGRESSION (r219895-219897): Number of leaks on Open Source went from 9240 to 235983 and is now at 302372


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm (220326 => 220327)

--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm	2017-08-06 23:34:58 UTC (rev 220326)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm	2017-08-07 03:00:55 UTC (rev 220327)
@@ -185,7 +185,8 @@
 #endif // PLATFORM(MAC)
 
 #if PLATFORM(IOS)
-TEST(NowPlayingControlsTests, NowPlayingControlsIOS)
+// FIXME: Re-enable this test once  is resolved.
+TEST(NowPlayingControlsTests, DISABLED_NowPlayingControlsIOS)
 {
 WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
 configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [220326] trunk/Source/WebKit

2017-08-06 Thread clopez
Title: [220326] trunk/Source/WebKit








Revision 220326
Author clo...@igalia.com
Date 2017-08-06 16:34:58 -0700 (Sun, 06 Aug 2017)


Log Message
[GTK][WPE] CFLAGS from pkg-config for (E)GL are not passed to WebKit
https://bugs.webkit.org/show_bug.cgi?id=175125

Reviewed by Michael Catanzaro.

Some platforms define cflags on the (E)GL pkg-config files that we
need to pass to the build system when including the (E)GL headers.
And we are already doing this when building WebCore (after r184954).

But now we need to do this also on WebKit (former WebKit2) because
we include (E)GL headers (and make use of them) on the UIProcess.

* CMakeLists.txt:

Modified Paths

trunk/Source/WebKit/CMakeLists.txt
trunk/Source/WebKit/ChangeLog




Diff

Modified: trunk/Source/WebKit/CMakeLists.txt (220325 => 220326)

--- trunk/Source/WebKit/CMakeLists.txt	2017-08-06 23:24:17 UTC (rev 220325)
+++ trunk/Source/WebKit/CMakeLists.txt	2017-08-06 23:34:58 UTC (rev 220326)
@@ -91,6 +91,37 @@
 )
 
 if (ENABLE_GRAPHICS_CONTEXT_3D)
+# For platforms that want to use system-provided OpenGL (ES) / EGL headers,
+# these include directories, libraries or definitions need to be
+# added before the ANGLE directories.
+if (USE_OPENGL)
+list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+${OPENGL_INCLUDE_DIRS}
+)
+list(APPEND WebKit2_LIBRARIES
+${OPENGL_LIBRARIES}
+)
+add_definitions(${OPENGL_DEFINITIONS})
+elseif (USE_OPENGL_ES_2)
+list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+${OPENGLES2_INCLUDE_DIRS}
+)
+list(APPEND WebKit2_LIBRARIES
+${OPENGLES2_LIBRARIES}
+)
+add_definitions(${OPENGLES2_DEFINITIONS})
+endif ()
+
+if (USE_EGL)
+list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+${EGL_INCLUDE_DIRS}
+)
+list(APPEND WebKit2_LIBRARIES
+${EGL_LIBRARIES}
+)
+add_definitions(${EGL_DEFINITIONS})
+endif ()
+
 list(APPEND WebKit2_INCLUDE_DIRECTORIES
 "${THIRDPARTY_DIR}/ANGLE"
 "${THIRDPARTY_DIR}/ANGLE/include/KHR"


Modified: trunk/Source/WebKit/ChangeLog (220325 => 220326)

--- trunk/Source/WebKit/ChangeLog	2017-08-06 23:24:17 UTC (rev 220325)
+++ trunk/Source/WebKit/ChangeLog	2017-08-06 23:34:58 UTC (rev 220326)
@@ -1,3 +1,19 @@
+2017-08-06  Carlos Alberto Lopez Perez  
+
+[GTK][WPE] CFLAGS from pkg-config for (E)GL are not passed to WebKit
+https://bugs.webkit.org/show_bug.cgi?id=175125
+
+Reviewed by Michael Catanzaro.
+
+Some platforms define cflags on the (E)GL pkg-config files that we
+need to pass to the build system when including the (E)GL headers.
+And we are already doing this when building WebCore (after r184954).
+
+But now we need to do this also on WebKit (former WebKit2) because
+we include (E)GL headers (and make use of them) on the UIProcess.
+
+* CMakeLists.txt:
+
 2017-08-05  Carlos Garcia Campos  
 
 WebDriver: Implement page load strategy






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [220325] trunk/Websites/webkit.org

2017-08-06 Thread jcraig
Title: [220325] trunk/Websites/webkit.org








Revision 220325
Author jcr...@apple.com
Date 2017-08-06 16:24:17 -0700 (Sun, 06 Aug 2017)


Log Message
2017-08-06  James Craig  

Update prefers-reduced-motion demos to link back to blog post
https://bugs.webkit.org/show_bug.cgi?id=175251

Unreviewed, added some cross links to older demo files.

* blog-files/prefers-reduced-motion/axi.htm:
* blog-files/prefers-reduced-motion/prm.htm:

Modified Paths

trunk/Websites/webkit.org/ChangeLog
trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/axi.htm
trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/prm.htm




Diff

Modified: trunk/Websites/webkit.org/ChangeLog (220324 => 220325)

--- trunk/Websites/webkit.org/ChangeLog	2017-08-06 17:57:26 UTC (rev 220324)
+++ trunk/Websites/webkit.org/ChangeLog	2017-08-06 23:24:17 UTC (rev 220325)
@@ -1,3 +1,13 @@
+2017-08-06  James Craig  
+
+Update prefers-reduced-motion demos to link back to blog post
+https://bugs.webkit.org/show_bug.cgi?id=175251
+
+Unreviewed, added some cross links to older demo files.
+
+* blog-files/prefers-reduced-motion/axi.htm:
+* blog-files/prefers-reduced-motion/prm.htm:
+
 2017-08-04  Jon Davis  
 
 Fixed loading feature status page queries and anchor link URLs


Modified: trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/axi.htm (220324 => 220325)

--- trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/axi.htm	2017-08-06 17:57:26 UTC (rev 220324)
+++ trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/axi.htm	2017-08-06 23:24:17 UTC (rev 220325)
@@ -20,6 +20,6 @@
 
 
 
-Back to the .
+Back to the WebKit blog post:  or .
 
 
\ No newline at end of file


Modified: trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/prm.htm (220324 => 220325)

--- trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/prm.htm	2017-08-06 17:57:26 UTC (rev 220324)
+++ trunk/Websites/webkit.org/blog-files/prefers-reduced-motion/prm.htm	2017-08-06 23:24:17 UTC (rev 220325)
@@ -112,7 +112,7 @@
 
 
 
-Reduced Motion Demos
+Reduced Motion Demos for WebKit blog post: 
 
 To test these, enable the "Reduce Motion" setting.
 
@@ -169,5 +169,7 @@
 
 
 
+Return to WebKit blog post: 
+
 
 
\ No newline at end of file






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [220324] trunk

2017-08-06 Thread utatane . tea
Title: [220324] trunk








Revision 220324
Author utatane@gmail.com
Date 2017-08-06 10:57:26 -0700 (Sun, 06 Aug 2017)


Log Message
Promise resolve and reject function should have length = 1
https://bugs.webkit.org/show_bug.cgi?id=175242

Reviewed by Saam Barati.

JSTests:

* stress/builtin-function-length.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):

Source/_javascript_Core:

Previously we have separate system for "length" and "name" for builtin functions.
The builtin functions do not use lazy reifying system. Instead, they have direct
properties when instantiating it. While the function created for properties (like
Array.prototype.filter) is created by JSFunction::createBuiltin(), function inside
these builtin functions are just created by JSFunction::create(). Since it does
not set any values for "length", these functions do not have "length" property.
So, the resolve and reject functions passed to Promise's executor do not have
"length" property.

This patch make builtin functions use standard lazy reifying system for "length".
So, "length" property of the builtin function just works as if the normal functions
do.

* runtime/JSFunction.cpp:
(JSC::JSFunction::createBuiltinFunction):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyLazyPropertyForHostOrBuiltinIfNeeded):
(JSC::JSFunction::reifyLazyLengthIfNeeded):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):
(JSC::JSFunction::reifyBoundNameIfNeeded): Deleted.
* runtime/JSFunction.h:

Modified Paths

trunk/JSTests/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/runtime/JSFunction.cpp
trunk/Source/_javascript_Core/runtime/JSFunction.h


Added Paths

trunk/JSTests/stress/builtin-function-length.js




Diff

Modified: trunk/JSTests/ChangeLog (220323 => 220324)

--- trunk/JSTests/ChangeLog	2017-08-06 13:04:32 UTC (rev 220323)
+++ trunk/JSTests/ChangeLog	2017-08-06 17:57:26 UTC (rev 220324)
@@ -1,3 +1,16 @@
+2017-08-06  Yusuke Suzuki  
+
+Promise resolve and reject function should have length = 1
+https://bugs.webkit.org/show_bug.cgi?id=175242
+
+Reviewed by Saam Barati.
+
+* stress/builtin-function-length.js: Added.
+(shouldBe):
+(shouldThrow):
+(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
+(shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
+
 2017-08-06  Oleksandr Skachkov  
 
 [ESNext] Async iteration - Implement Async Generator - parser


Added: trunk/JSTests/stress/builtin-function-length.js (0 => 220324)

--- trunk/JSTests/stress/builtin-function-length.js	(rev 0)
+++ trunk/JSTests/stress/builtin-function-length.js	2017-08-06 17:57:26 UTC (rev 220324)
@@ -0,0 +1,47 @@
+function shouldBe(actual, expected) {
+if (actual !== expected)
+throw new Error('bad value: ' + actual);
+}
+
+function shouldThrow(func, errorMessage) {
+var errorThrown = false;
+var error = null;
+try {
+func();
+} catch (e) {
+errorThrown = true;
+error = e;
+}
+if (!errorThrown)
+throw new Error('not thrown');
+if (String(error) !== errorMessage)
+throw new Error(`bad error: ${String(error)}`);
+}
+
+{
+shouldBe(JSON.stringify(Object.getOwnPropertyNames(Array.prototype.filter).sort()), `["length","name"]`);
+shouldBe(Array.prototype.filter.length, 1);
+shouldBe(JSON.stringify(Object.getOwnPropertyDescriptor(Array.prototype.filter, 'length')), `{"value":1,"writable":false,"enumerable":false,"configurable":true}`);
+shouldBe(delete Array.prototype.filter.length, true);
+shouldBe(JSON.stringify(Object.getOwnPropertyNames(Array.prototype.filter).sort()), `["name"]`);
+}
+
+{
+shouldThrow(function () {
+"use strict";
+Array.prototype.forEach.length = 42;
+}, `TypeError: Attempted to assign to readonly property.`);
+}
+
+{
+var resolve = null;
+var reject = null;
+new Promise(function (arg0, arg1) {
+resolve = arg0;
+reject = arg1;
+});
+shouldBe(resolve.length, 1);
+shouldBe(JSON.stringify(Object.getOwnPropertyDescriptor(resolve, 'length')), `{"value":1,"writable":false,"enumerable":false,"configurable":true}`);
+shouldBe(reject.length, 1);
+shouldBe(JSON.stringify(Object.getOwnPropertyDescriptor(reject, 'length')), `{"value":1,"writable":false,"enumerable":false,"configurable":true}`);
+}


Modified: trunk/Source/_javascript_Core/ChangeLog (220323 => 220324)

--- trunk/Source/_javascript_Core/ChangeLog	2017-08-06 13:04:32 UTC (rev 220323)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-08-06 17:57:26 UTC (rev