pugjs/pug

`each` should recognize iteration protocol objects

Open

#3,170 opened on Aug 13, 2019

View on GitHub
 (10 comments) (1 reaction) (0 assignees)JavaScript (1,955 forks)batch import
Being Worked OnGood First Issue

Repository metrics

Stars
 (21,509 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Pug Version: 2.0.4

Node Version: 8.10.0

Input JavaScript Values

var pug = require('pug');

var map = new Map([['foo', 'bar']]);

var html = pug.renderFile('input.pug', { some_iterable: map });

console.log(html);

Input Pug

h1 Pug iteration test file
each el in some_iterable
     p= el[0]
     p= el[1]

Expected HTML

<h1>Pug iteration test file</h1><p>foo</p><p>bar</p>

Actual HTML

<h1>Pug iteration test file</h1>

Additional Comments

Here's the relevant MDN documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols

I would be happy to prepare a PR implementing this change but wanted to open an issue first to make sure there aren't any issues I haven't thought of yet. I also think this will be backwards-compatible pretty easily, but don't have the time to double-check at the moment. I'll do that soon.

Contributor guide