FILTER in aggregates over a window

Original query:

WITH points (value, expiration_date, creation_date) AS (VALUES
	((100), (timestamptz'2019-01-05'), (timestamptz'2019-01-01')),
	(  (1), ('2020-01-15'), ('2019-01-01')),
	((-50), (NULL),         ('2019-01-04')),
	( (50), ('2019-01-15'), ('2019-01-04 10:00')),
	( (60), ('2019-01-16'), ('2019-01-09')),
	( (20), ('2019-01-17'), ('2019-01-10')),
	((-70), (NULL),         ('2019-01-16')),
	( (40), ('2019-02-17'), ('2019-01-20'))
)
SELECT *,
     --sum(value) FILTER (WHERE w.expiration_date IS NULL OR w.expiration_date > points.creation_date) OVER w
     sum(value) OVER w
FROM points
WINDOW w AS (ORDER BY creation_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
ORDER BY points.creation_date;

Prettified:

WITH points ("value", "expiration_date", "creation_date") AS (
  VALUES
  (100, '2019-01-05'::timestamptz, '2019-01-01'::timestamptz), (1, '2020-01-15', '2019-01-01'), (-50, NULL, '2019-01-04'), (50, '2019-01-15', '2019-01-04 10:00'), (60, '2019-01-16', '2019-01-09'), (20, '2019-01-17', '2019-01-10'), (-70, NULL, '2019-01-16'), (40, '2019-02-17', '2019-01-20')
)
SELECT
  *,
  sum("value") OVER ()
FROM
  "points"
ORDER BY
  "points"."creation_date"