-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104515/#review30111
-----------------------------------------------------------


This review has been submitted with commit 
15c328efdbb43d18585c44ee390ba21e57ab30ce by Bernd Buschinski to branch master.

- Commit Hook


On Jan. 22, 2013, 3:11 a.m., Bernd Buschinski wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104515/
> -----------------------------------------------------------
> 
> (Updated Jan. 22, 2013, 3:11 a.m.)
> 
> 
> Review request for kdelibs.
> 
> 
> Description
> -------
> 
> KJS: Implement Object.GetOwnPropertyDescriptor & Object.DefineProperty
> 
> This is a pretty big patch, to get Object.defineProperty perfect for 
> ecmascript (for all tests that only use implemented stuff, all test that use 
> Object.create for example will fail, as its not implemented)
> 
> PropertyDescriptor:
> Necessary for collectiong data, this introduce new CommonIdentifiers.h, this 
> might requiere to rebuild khtml against new kjs, otherwise it might cause 
> weird crashes (at least for me)
> 
> 
> object.h:
> Beside from adding new getPropertyDescriptor & getOwnPropertyDescriptor & 
> defineOwnProperty, the important changes are making
> getPropertyAttributes, put/get/remove-Direct virtual.
> Why do I need that?
> Because put checks if the prototype already has property XYZ and uses it. Now 
> imagine an array that got a setter-only property via a prototype. 
> DefineProperty would try to use put, which uses the prototype property and it 
> would fail. So all custom-data classes like Array need to implement/use 
> put/get/remove-Direct.
> 
> 
> object.cpp:
> currently put on a setter-only property would always throw an exception, this 
> is only correct for strict-mode, as we currently do not check for strict-mode 
> it would make more sense to change it to default not throwing an exception.
> 
> 
> array.cpp/h:
> The old Array implementation did not store attributes for array indexes, I 
> rewrote it to also store the attributes.
> + Bonus: also fix getOwnPropertyNames, as we now store attributes.
> + use new attributes, reject put/delete/enum if set
> 
> function.cpp (Arguments)
> changed the default attributes how parameter are stored, according to ECMA 
> 10.6.11.b
> 
> 
> Rest is "just" the defineProperty implementation
> 
> 
> Diffs
> -----
> 
>   kjs/CMakeLists.txt ef3c5e8 
>   kjs/CommonIdentifiers.h 79f3207 
>   kjs/array_instance.h d2f641f 
>   kjs/array_instance.cpp 2469316 
>   kjs/function.h 5dbbfb2 
>   kjs/function.cpp 6263b36 
>   kjs/object.h 9446349 
>   kjs/object.cpp 9249902 
>   kjs/object_object.cpp 39161e2 
>   kjs/operations.h 477d99c 
>   kjs/operations.cpp 73593fd 
>   kjs/propertydescriptor.h PRE-CREATION 
>   kjs/propertydescriptor.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/104515/diff/
> 
> 
> Testing
> -------
> 
> ecmascript & daily surfing
> 
> used valgrind on many array testcases to check for possible memleaks
> 
> 
> Thanks,
> 
> Bernd Buschinski
> 
>

Reply via email to