• bmeurer's avatar
    [date] Refactor the %_DateField intrinsic to be optimizable. · e4782a9b
    bmeurer authored
    Previously the %_DateField intrinsic would also check the object and
    throw an exception if you happen to pass something that is not a valid
    JSDate, which (a) violates our policy for instrinsics and (b) is hard to
    optimize in TurboFan (even Crankshaft has a hard time, but there we will
    never inline the relevant builtins, so it doesn't show up). The throwing
    part is now a separate intrinsics %_ThrowIfNotADate that throws an
    exception in full codegen and deoptimizes in Crankshaft, which means the
    code for the current use cases is roughly the same (modulo some register
    renamings/gap moves).
    
    R=jkummerow@chromium.org
    
    Review URL: https://codereview.chromium.org/1167813003
    
    Cr-Commit-Position: refs/heads/master@{#28782}
    e4782a9b
date.js 22.4 KB