Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update hello.polyfill.js #674

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Ujjawal-Kantt
Copy link

Description of Changes to Merge
This update improves the robustness, compatibility, and correctness of polyfills for ES5 methods in JavaScript. Key fixes include stricter type checks, improved error handling, proper property lookups, and adherence to ECMAScript specifications.

🔧 Key Fixes & Enhancements
1️⃣ Fixed Object.create Implementation:

Ensured it only accepts non-null objects.
Throws a TypeError for invalid inputs.
2️⃣ Fixed Object.keys Property Lookup:

Replaced r.hasOwnProperty.call(o, k) with Object.prototype.hasOwnProperty.call(o, k).
Ensures it correctly filters only own properties.
3️⃣ Fixed Array.prototype.indexOf Handling of fromIndex:

Handles negative indices properly by clamping within valid bounds.
Ensures consistent behavior in older browsers.
4️⃣ Improved Type Checks for Array.prototype.forEach, map, filter:

Added explicit TypeError checks to prevent execution on null or undefined arrays.
Ensured function arguments are validated before execution.
5️⃣ Refactored Function.prototype.bind for Better Compatibility:

Fixed prototype inheritance issues in older browsers (IE8).
Ensured the bound function correctly retains this context when called with new.
6️⃣ Fixed window.location.assign:

Added a TypeError check to ensure the URL is a string.
Uses window.location.href = url; to prevent assignment issues.
🚀 Expected Benefits
Better Compatibility with older browsers like IE8+.
Stronger Error Handling preventing unexpected crashes.
More Standards-Compliant Behavior aligned with ECMAScript 5.1.
Improved Performance with optimized loops and property checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant